Compare commits
No commits in common. "a1b5fccc986dd44523d14b40f4a2ab9aa3de568e" and "481400d4044a93d00bca8bbb36717e4dd2054fb6" have entirely different histories.
a1b5fccc98
...
481400d404
@ -1,7 +1,7 @@
|
|||||||
import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common'
|
import { BadRequestException, Injectable, NotFoundException, UnprocessableEntityException } from '@nestjs/common'
|
||||||
import { CreateChallengeActionDto } from './dto/create-challenge-action.dto'
|
import { CreateChallengeActionDto } from './dto/create-challenge-action.dto'
|
||||||
import { UpdateChallengeActionDto } from './dto/update-challenge-action.dto'
|
import { UpdateChallengeActionDto } from './dto/update-challenge-action.dto'
|
||||||
import { ChallengeAction, MoneyUpdateType, Player } from '@prisma/client'
|
import { ChallengeAction, Player } from '@prisma/client'
|
||||||
import { PrismaService } from 'src/prisma/prisma.service'
|
import { PrismaService } from 'src/prisma/prisma.service'
|
||||||
import { QueryPaginationDto } from 'src/common/dto/pagination-query.dto'
|
import { QueryPaginationDto } from 'src/common/dto/pagination-query.dto'
|
||||||
import { paginate } from 'src/common/utils/pagination.utils'
|
import { paginate } from 'src/common/utils/pagination.utils'
|
||||||
@ -68,17 +68,6 @@ export class ChallengeActionsService {
|
|||||||
active: false,
|
active: false,
|
||||||
end: now,
|
end: now,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Crédit du nombre de points remportés grâce au défi
|
|
||||||
const challenge = await this.prisma.challenge.findUnique({ where: { id: challengeAction.challengeId } })
|
|
||||||
await this.prisma.moneyUpdate.create({
|
|
||||||
data: {
|
|
||||||
playerId: player.id,
|
|
||||||
amount: challenge.reward,
|
|
||||||
reason: MoneyUpdateType.WIN_CHALLENGE,
|
|
||||||
actionId: challengeAction.id,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
data = {
|
data = {
|
||||||
|
@ -27,7 +27,7 @@ export class GameService {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const runnerId = alreadyStarted ? game.currentRunnerId : players[Math.floor(players.length * Math.random())].id
|
const runnerId = alreadyStarted ? game.currentRunnerId : players[Math.trunc(players.length * Math.random())].id
|
||||||
return await this.prisma.game.update({
|
return await this.prisma.game.update({
|
||||||
where: { id: 1 },
|
where: { id: 1 },
|
||||||
data: {
|
data: {
|
||||||
|
@ -95,7 +95,6 @@ export class TrainsController {
|
|||||||
* Importation d'un trajet en train à partir de Rail Planner
|
* Importation d'un trajet en train à partir de Rail Planner
|
||||||
*
|
*
|
||||||
* @throws {401} Non authentifié⋅e
|
* @throws {401} Non authentifié⋅e
|
||||||
* @throws {409} Le voyage Interrail est déjà importé
|
|
||||||
* @throws {422} Le voyage Interrail à importer contient plusieurs trajets ou plusieurs trains
|
* @throws {422} Le voyage Interrail à importer contient plusieurs trajets ou plusieurs trains
|
||||||
*/
|
*/
|
||||||
@Post("/import")
|
@Post("/import")
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { ConflictException, HttpException, Injectable, NotFoundException, UnprocessableEntityException } from '@nestjs/common'
|
import { Injectable, NotFoundException, UnprocessableEntityException } from '@nestjs/common'
|
||||||
import { CreateTrainDto } from './dto/create-train.dto'
|
import { CreateTrainDto } from './dto/create-train.dto'
|
||||||
import { UpdateTrainDto } from './dto/update-train.dto'
|
import { UpdateTrainDto } from './dto/update-train.dto'
|
||||||
import { PrismaService } from 'src/prisma/prisma.service'
|
import { PrismaService } from 'src/prisma/prisma.service'
|
||||||
import { MoneyUpdateType, Player, TrainTrip } from '@prisma/client'
|
import { Player, TrainTrip } from '@prisma/client'
|
||||||
import { QueryPaginationDto } from 'src/common/dto/pagination-query.dto'
|
import { QueryPaginationDto } from 'src/common/dto/pagination-query.dto'
|
||||||
import { paginate } from 'src/common/utils/pagination.utils'
|
import { paginate } from 'src/common/utils/pagination.utils'
|
||||||
import { ImportTrainDto } from './dto/import-train.dto'
|
import { ImportTrainDto } from './dto/import-train.dto'
|
||||||
@ -54,9 +54,6 @@ export class TrainsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async import(player: Player, { id: trainId }: ImportTrainDto): Promise<TrainTrip> {
|
async import(player: Player, { id: trainId }: ImportTrainDto): Promise<TrainTrip> {
|
||||||
if (this.findOne(trainId))
|
|
||||||
throw new ConflictException(`Le train avec l'identifiant ${trainId} est déjà importé`)
|
|
||||||
|
|
||||||
const interrailResult: InterrailJourney = await fetch(`https://3uiwjsimnh.execute-api.eu-central-1.amazonaws.com/Prod/journey-import?id=${trainId}`)
|
const interrailResult: InterrailJourney = await fetch(`https://3uiwjsimnh.execute-api.eu-central-1.amazonaws.com/Prod/journey-import?id=${trainId}`)
|
||||||
.then(data => data.json())
|
.then(data => data.json())
|
||||||
if (interrailResult.data.travels.length !== 1)
|
if (interrailResult.data.travels.length !== 1)
|
||||||
@ -83,10 +80,12 @@ export class TrainsService {
|
|||||||
const oldCoordinates = legInfoJson.trainStopStations.at(index - 1).coordinates
|
const oldCoordinates = legInfoJson.trainStopStations.at(index - 1).coordinates
|
||||||
return distance + distanceCoordinates({ from: oldCoordinates, to: coordinates })
|
return distance + distanceCoordinates({ from: oldCoordinates, to: coordinates })
|
||||||
}, 0)
|
}, 0)
|
||||||
const cost = 10 * 10 * Math.ceil(distance / 1000)
|
|
||||||
|
|
||||||
const train = await this.prisma.trainTrip.create({
|
return this.prisma.trainTrip.upsert({
|
||||||
data: {
|
where: {
|
||||||
|
id: trainId,
|
||||||
|
},
|
||||||
|
create: {
|
||||||
id: trainId,
|
id: trainId,
|
||||||
playerId: player.id,
|
playerId: player.id,
|
||||||
distance: distance,
|
distance: distance,
|
||||||
@ -96,16 +95,15 @@ export class TrainsService {
|
|||||||
arrivalTime: arrival,
|
arrivalTime: arrival,
|
||||||
infoJson: leg.infoJson,
|
infoJson: leg.infoJson,
|
||||||
},
|
},
|
||||||
})
|
update: {
|
||||||
// Ajout du trajet en points
|
|
||||||
await this.prisma.moneyUpdate.create({
|
|
||||||
data: {
|
|
||||||
playerId: player.id,
|
playerId: player.id,
|
||||||
amount: -cost,
|
distance: distance,
|
||||||
reason: MoneyUpdateType.BUY_TRAIN,
|
from: travel.from,
|
||||||
tripId: train.id,
|
to: travel.to,
|
||||||
|
departureTime: departure,
|
||||||
|
arrivalTime: arrival,
|
||||||
|
infoJson: leg.infoJson,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return train
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user