-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgame.resolver.ts
More file actions
34 lines (28 loc) · 1.14 KB
/
game.resolver.ts
File metadata and controls
34 lines (28 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
import { AddGameToLibraryArgs } from './dto/add-game-to-library.args';
import { GetGameArgs } from './dto/get-game.args';
import { GetGameListArgs } from './dto/get-game-list.args';
import { UploadGameBoxArtArgs } from './dto/upload-game-box-art.args';
import { GameService } from './game.service';
import { Game, GameList } from './models/game.model';
import { PrepareUpload } from './models/prepare-result.model';
@Resolver(() => Game)
export class GameResolver {
constructor(private gameService: GameService) {}
@Query(() => GameList)
async gameList(@Args() where: GetGameListArgs): Promise<GameList> {
return this.gameService.fineGamesList(where);
}
@Query(() => Game)
async game(@Args() args: GetGameArgs) {
return this.gameService.fineGame(args.id);
}
@Mutation(() => PrepareUpload)
async prepareUploadGameBoxArt(@Args() args: UploadGameBoxArtArgs) {
return await this.gameService.preSignUploadBoxArtUrl(args);
}
@Mutation(() => Game)
async addGameToLibrary(@Args('data') args: AddGameToLibraryArgs) {
return this.gameService.createGame(args);
}
}