CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.

VaingloryAPI 0.2.1

VaingloryAPI 0.2.1

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Apr 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Jose Salavert.



 
Depends on:
Alamofire~> 4.4
ObjectMapper~> 2.2
Treasure>= 0
Zip~> 0.7
 

  • By
  • Jose Salavert

Vainglory API in swift

Usage

Request a Vainglory API key and pass it to VainggloryAPI client

import VaingloryAPI

let vaingloryAPI = VaingloryAPIClient(apiKey: "YOUR_VAINGLORY_API_KEY")

Getting players

Player by id

vaingloryAPI.getPlayer(withId: "b7ce178c-bd4b-11e4-8883-06d90c28bf1a", shard: .eu) { player, error in
    if let player = player {
        print("[VaingloryAPI] \(player)")
    } else if let error = error {
        print("[VaingloryAPI] \(error)")
    }
}

Player by name

vaingloryAPI.getPlayer(withName: "Salavert", shard: .eu) { player, error in
    if let player = player {
        print("[VaingloryAPI] \(player)")
    } else if let error = error {
        print("[VaingloryAPI] \(error)")
    }
}

Players by name

vaingloryAPI.getPlayers(withNames: ["Salavert", "Facil"], shard: .eu) { players, error in
    if let players = players {
        for player in players {
            print("[VaingloryAPI] \(player)")
        }
    } else if let error = error {
        print("[VaingloryAPI] \(error)")
    }
}

Getting matches

Match by Id

vaingloryAPI.getMatch(withId: "c481c96a-03fd-11e7-8f17-0266696addef", shard: .eu) { match, error in
    if let match = match {
        print("[VaingloryAPI] \(match)")
        // match.rosters
        // match.rosters?.first?.participants
        // match.rosters?.first?.participants?.first?.player
    } else if let error = error {
        print(error)
    }
}

Match by player name

let filters = RouterFilters()
    .playerName("Salavert")
    .limit(5)

vaingloryAPI.getMatches(shard: .eu, filters: filters) { matches, error in
    if let matches = matches {
        for match in matches {
            print("[VaingloryAPI] \(match)")
        }
    } else if let error = error {
        print("[VaingloryAPI] \(error)")
    }
}

Samples

A sample contains a collection of random matches

Retrieving matches of latest available sample

vaingloryAPI.getSampleMatches(shard: .na) { matches, error in
    if let matches = matches {
        print(matches)
    } else if let error = error {
        print(error)
    }
}

If you prefer to do it manually and have feedback of download progress

let filters = RouterFilters().limit(1)

vaingloryAPI.getSamples(shard: .na, filters: filters) { samples, error in
    if let samples = samples {
        samples.first?.getMatches(
            completionHandler: { matches in
                if let matches = matches {
                    print("Matches count: \(matches.count)")
                }
        },
            progressHandler: { progress in
                print("Download Progress: \(progress.fractionCompleted)")
        })
    } else if let error = error {
        print(error)
    }
}

Telemetry

let url = "https://gl-prod-us-east-1.s3.amazonaws.com/assets/semc-vainglory/na/2017/03/17/00/43/b900c179-0aaa-11e7-bb12-0242ac110005-telemetry.json"
vaingloryAPI.getTelemetry(url: url) { telemetryList, error in
    print(telemetryList?.count)
}

Features:

  • Player by id or name.
  • Match by id.
  • List of matches based on filters.
  • Telemetry