From 25af97d4a627e2a4e92371a7bb59a702083c57ff Mon Sep 17 00:00:00 2001 From: Valentin Kaelin Date: Mon, 5 Oct 2020 12:40:02 +0200 Subject: [PATCH] refactor: create Summoner Mongo Model --- .../Controllers/Http/SummonersController.ts | 11 ++++------ server-new/app/Models/Summoner.ts | 21 +++++++++++++++++++ server-new/app/Services/MatchService.ts | 2 +- server-new/app/Services/SummonerService.ts | 2 +- server-new/contracts/league.ts | 11 ---------- 5 files changed, 27 insertions(+), 20 deletions(-) create mode 100644 server-new/app/Models/Summoner.ts diff --git a/server-new/app/Controllers/Http/SummonersController.ts b/server-new/app/Controllers/Http/SummonersController.ts index 5a28151..be41827 100644 --- a/server-new/app/Controllers/Http/SummonersController.ts +++ b/server-new/app/Controllers/Http/SummonersController.ts @@ -1,6 +1,5 @@ import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' -import { SummonerModel } from '@ioc:Adonis/League' -import mongodb from '@ioc:Mongodb/Database' +import Summoner from 'App/Models/Summoner' import MatchRepository from 'App/Repositories/MatchRepository' import Jax from 'App/Services/Jax' import MatchService from 'App/Services/MatchService' @@ -44,11 +43,9 @@ export default class SummonersController { // { puuid: account.puuid } // ) - const summonersCollection = await mongodb.connection().collection('summoners') - let summonerDB:SummonerModel|null = await summonersCollection.findOne({ puuid: account.puuid }) + let summonerDB = await Summoner.findOne({ puuid: account.puuid }) if(!summonerDB) { - await summonersCollection.insertOne({ puuid: account.puuid }) - summonerDB = {puuid: account.puuid } + summonerDB = await Summoner.create({ puuid: account.puuid }) } // Summoner names @@ -71,7 +68,7 @@ export default class SummonersController { // SAVE IN DB // await summonerDB.save() - await summonersCollection.updateOne({ puuid: account.puuid }, summonerDB) + await summonerDB.save() } catch (error) { console.log('username not found') console.log(error) diff --git a/server-new/app/Models/Summoner.ts b/server-new/app/Models/Summoner.ts new file mode 100644 index 0000000..f56d9cb --- /dev/null +++ b/server-new/app/Models/Summoner.ts @@ -0,0 +1,21 @@ +import { Model } from '@ioc:Mongodb/Model' +import { MatchReferenceDto } from 'App/Services/Jax/src/Endpoints/MatchlistEndpoint' + +export interface SummonerModel { + puuid: string, + matchList?: MatchReferenceDto[], + names?: SummonerNames[] +} + +interface SummonerNames { + name: string, + date: Date +} + +export default class Summoner extends Model implements SummonerModel { + public static collectionName = 'summoners' + + public puuid: string + public matchList?: MatchReferenceDto[] + public names?: SummonerNames[] +} diff --git a/server-new/app/Services/MatchService.ts b/server-new/app/Services/MatchService.ts index 5cc580e..2b1aa8f 100644 --- a/server-new/app/Services/MatchService.ts +++ b/server-new/app/Services/MatchService.ts @@ -3,7 +3,7 @@ import Jax from './Jax' import { getSeasonNumber } from 'App/helpers' import { MatchReferenceDto } from './Jax/src/Endpoints/MatchListEndpoint' import { SummonerDTO } from './Jax/src/Endpoints/SummonerEndpoint' -import { SummonerModel } from '@ioc:Adonis/League' +import { SummonerModel } from 'App/Models/Summoner' class MatchService { /** diff --git a/server-new/app/Services/SummonerService.ts b/server-new/app/Services/SummonerService.ts index 0798e2b..dea8713 100644 --- a/server-new/app/Services/SummonerService.ts +++ b/server-new/app/Services/SummonerService.ts @@ -1,7 +1,7 @@ import Jax from './Jax' import { SummonerDTO } from 'App/Services/Jax/src/Endpoints/SummonerEndpoint' import { LeagueEntryDTO } from './Jax/src/Endpoints/LeagueEndpoint' -import { SummonerModel } from '@ioc:Adonis/League' +import { SummonerModel } from 'App/Models/Summoner' class SummonerService { private uniqueLeagues = ['CHALLENGER', 'GRANDMASTER', 'MASTER'] diff --git a/server-new/contracts/league.ts b/server-new/contracts/league.ts index 8c4b36c..144c28e 100644 --- a/server-new/contracts/league.ts +++ b/server-new/contracts/league.ts @@ -1,14 +1,3 @@ declare module '@ioc:Adonis/League' { - import { MatchReferenceDto } from 'App/Services/Jax/src/Endpoints/MatchlistEndpoint' - interface SummonerModel { - puuid: string, - matchList?: MatchReferenceDto[], - names?: SummonerNames[] - } - - interface SummonerNames { - name: string, - date: Date - } }