@@ -4,7 +4,7 @@ import {LoginPayload} from "./models/payloads/login.payload";
44import { UserEntity } from "./models/entities/user.entity" ;
55import { PrismaService } from "../misc/prisma.service" ;
66import { MiscService } from "../misc/misc.service" ;
7- import { Images , Users } from "@prisma/client" ;
7+ import { EpisodeProgressions , Images , Users } from "@prisma/client" ;
88import { JwtService } from "@nestjs/jwt" ;
99
1010@Injectable ( )
@@ -108,4 +108,50 @@ export class UsersService{
108108 } ) ,
109109 } ;
110110 }
111+
112+ async getWebtoonProgression ( user : UserEntity , webtoonId : number ) {
113+ // TODO
114+ }
115+
116+ async getEpisodeProgression ( user : UserEntity , episodeId : number ) : Promise < number > {
117+ const episodeProgression : EpisodeProgressions = await this . prismaService . episodeProgressions . findUnique ( {
118+ where : {
119+ user_id_episode_id : {
120+ user_id : user . id ,
121+ episode_id : episodeId ,
122+ } ,
123+ } ,
124+ } ) ;
125+ if ( ! episodeProgression )
126+ throw new NotFoundException ( "Episode progression not found" ) ;
127+ return episodeProgression . progression ;
128+ }
129+
130+ async setEpisodeProgression ( user : UserEntity , episodeId : number , progression : number ) {
131+ const episodeProgression : EpisodeProgressions = await this . prismaService . episodeProgressions . findUnique ( {
132+ where : {
133+ user_id_episode_id : {
134+ user_id : user . id ,
135+ episode_id : episodeId ,
136+ } ,
137+ } ,
138+ } ) ;
139+ if ( ! episodeProgression )
140+ throw new NotFoundException ( "Episode progression not found" ) ;
141+ if ( progression < 0 )
142+ throw new BadRequestException ( "Invalid progression" ) ;
143+ if ( progression < episodeProgression . progression )
144+ throw new BadRequestException ( "New progression must be greater than existing one" ) ;
145+ await this . prismaService . episodeProgressions . update ( {
146+ where : {
147+ user_id_episode_id : {
148+ user_id : episodeProgression . user_id ,
149+ episode_id : episodeProgression . episode_id ,
150+ } ,
151+ } ,
152+ data : {
153+ progression,
154+ } ,
155+ } ) ;
156+ }
111157}
0 commit comments