Skip to content

Commit

Permalink
feat (LeagueEntries): Add new LeagueEntries endpoint #68 #66
Browse files Browse the repository at this point in the history
  • Loading branch information
cnguy committed Jun 12, 2019
1 parent fb86941 commit aba0513
Show file tree
Hide file tree
Showing 5 changed files with 151 additions and 0 deletions.
7 changes: 7 additions & 0 deletions example.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,14 @@ const kayn = Kayn()({
import run from './examples/async.await/v4/get-last-10-ranked-matches-efficiently'

const main = async () => {
/*
console.log(await kayn.Summoner.by.name('Contractz'))
console.log(
await kayn.League.Entries.list('RANKED_SOLO_5x5', 'DIAMOND', 'I'),
)
*/
const leagueId = 'c6fedb10-6e54-11e9-982e-c81f66cf2333'
console.log(await kayn.League.by.uuid(leagueId))
}

main()
65 changes: 65 additions & 0 deletions lib/Endpoints/LeagueEndpoint/LeagueEntriesEndpointV4.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import LeagueSuperclass from './LeagueSuperclass'
import Request from 'RequestClient/Request'
import METHOD_NAMES from 'Enums/method-names'

class LeagueEntriesEndpointV4 extends LeagueSuperclass {
constructor(config, limiter) {
super()

this.config = config

this.by = {
summonerID: this.summonerID.bind(this),
}

this.list = this.list.bind(this)

this.limiter = limiter
}

/**
* Get league entries in all queues for a given summoner ID.
*
* Implements GET `/lol/league/v4/entries/by-summoner/{encryptedSummonerId}`.
*
* @param {string} encryptedSummonerId - The encrypted id of the summoner.
*/
summonerID(summonerID) {
return new Request(
this.config,
this.serviceName,
`entries/by-summoner/${summonerID}`,
METHOD_NAMES.LEAGUE.GET_LEAGUE_ENTRIES_BY_SUMMONER_ID_V4,
'GET',
this.limiter,
null,
false,
4,
)
}

/**
* Get all the league entries.
*
* Implements GET `/lol/league/v4/entries/{queue}/{tier}/{division}`.
*
* @param {string} queue - The queue to search for. e.g. RANKED_SOLO_5x5
* @param {string} tier - The tier to search for. e.g. DIAMOND
* @param {string} division - The division to search for. e.g. I
*/
list(queue, tier, division) {
return new Request(
this.config,
this.serviceName,
`entries/${queue}/${tier}/${division}`,
METHOD_NAMES.LEAGUE.GET_LEAGUE_ENTRIES_BY_QUEUE_TIER_DIVISION_V4,
'GET',
this.limiter,
null,
false,
4,
)
}
}

export default LeagueEntriesEndpointV4
4 changes: 4 additions & 0 deletions lib/Enums/method-names.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,10 @@ const LEAGUE = {
'LEAGUE.GET_ALL_LEAGUE_POSITIONS_FOR_SUMMONER_V4',
GET_ALL_POSITIONAL_LEAGUE_ENTRIES_V4:
'LEAGUE.GET_ALL_POSITIONAL_LEAGUE_ENTRIES_V4',
GET_LEAGUE_ENTRIES_BY_SUMMONER_ID_V4:
'LEAGUE.GET_LEAGUE_ENTRIES_BY_SUMMONER_ID_V4',
GET_LEAGUE_ENTRIES_BY_QUEUE_TIER_DIVISION_V4:
'LEAGUE.GET_LEAGUE_ENTRIES_BY_QUEUE_TIER_DIVISION_V4',
}

const LOL_STATUS = {
Expand Down
5 changes: 5 additions & 0 deletions lib/Kayn.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import CurrentGameEndpointV4 from './Endpoints/SpectatorEndpoint/CurrentGameEndp
import FeaturedGamesEndpointV4 from './Endpoints/SpectatorEndpoint/FeaturedGamesEndpointV4'
import GrandmasterEndpointV4 from './Endpoints/LeagueEndpoint/GrandmasterEndpointV4'
import LeagueEndpointV4 from './Endpoints/LeagueEndpoint/LeagueEndpointV4'
import LeagueEntriesEndpointV4 from './Endpoints/LeagueEndpoint/LeagueEntriesEndpointV4'
import LeaguePositionsEndpointV4 from './Endpoints/LeagueEndpoint/LeaguePositionsEndpointV4'
import MasterEndpointV4 from './Endpoints/LeagueEndpoint/MasterEndpointV4'
import MatchEndpointV4 from './Endpoints/MatchEndpoint/MatchEndpointV4'
Expand Down Expand Up @@ -152,6 +153,10 @@ class Kayn {
this.Grandmaster = this.GrandmasterV4
this.LeagueV4 = new LeagueEndpointV4(this.config, this.limiter)
this.League = this.LeagueV4
this.League.Entries = new LeagueEntriesEndpointV4(
this.config,
this.limiter,
)
this.LeaguePositionsV4 = new LeaguePositionsEndpointV4(
this.config,
this.limiter,
Expand Down
70 changes: 70 additions & 0 deletions test/unit/endpoints/LeagueEndpoint/LeagueEntriesEndpointV4.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import { expect, should, assert } from 'chai'

import TestUtils from '../../../TestUtils'
const { kaynInstance, defaultConfig } = TestUtils

const { kayn, REGIONS, METHOD_TYPES } = kaynInstance
import LeagueEntriesEndpointV4 from '../../../../lib/Endpoints/LeagueEndpoint/LeagueEntriesEndpointV4'
import mocks from '../../../mocks'

describe('LeagueEntriesEndpointV4', function() {
this.timeout(0)

beforeEach(function() {
this.LeagueEntries = new LeagueEntriesEndpointV4(defaultConfig)
})

describe('.by.summonerID', function() {
it('should have the correct payload #1', function() {
const { payload } = this.LeagueEntries.by.summonerID('abcdefgh')
expect(payload).to.deep.equal({
method: 'GET',
serviceName: 'league',
endpoint: 'entries/by-summoner/abcdefgh',
query: [],
region: '',
isTournament: false,
version: 4,
})
})

it('should have the correct method name', function() {
const { methodName } = this.LeagueEntries.by
.summonerID('abcdefgh')
.region('na')
expect(methodName).to.equal(
'LEAGUE.GET_LEAGUE_ENTRIES_BY_SUMMONER_ID_V4',
)
})
})

describe('.list', function() {
it('should have the correct payload #1', function() {
const { payload } = this.LeagueEntries.list(
'RANKED_SOLO_5x5',
'DIAMOND',
'I',
).region('kr')
expect(payload).to.deep.equal({
method: 'GET',
serviceName: 'league',
endpoint: 'entries/RANKED_SOLO_5x5/DIAMOND/I',
query: [],
region: 'kr',
isTournament: false,
version: 4,
})
})

it('should have the correct method name', function() {
const { methodName } = this.LeagueEntries.list(
'RANKED_SOLO_5x5',
'DIAMOND',
'I',
).region('na')
expect(methodName).to.equal(
'LEAGUE.GET_LEAGUE_ENTRIES_BY_QUEUE_TIER_DIVISION_V4',
)
})
})
})

0 comments on commit aba0513

Please sign in to comment.