Gestion erreurs création/modification défi
This commit is contained in:
parent
8878a13f4f
commit
9dfb2ba15d
@ -33,10 +33,12 @@ export default function ChallengesList() {
|
||||
onPostSuccess: () => {
|
||||
setSuccessMessage("Le défi a bien été ajouté !")
|
||||
setSuccessSnackbarVisible(true)
|
||||
setEditChallengeVisible(false)
|
||||
queryClient.invalidateQueries({ predicate: (query) => query.queryKey[0] === 'get-challenges' })
|
||||
},
|
||||
onError: ({ response, error }) => {
|
||||
setErrorVisible(true)
|
||||
setEditChallengeVisible(false)
|
||||
if (response)
|
||||
setError([response.statusCode, response.message])
|
||||
else if (error)
|
||||
@ -54,6 +56,8 @@ export default function ChallengesList() {
|
||||
},
|
||||
onError: ({ response, error }) => {
|
||||
setErrorVisible(true)
|
||||
setEditChallengeVisible(false)
|
||||
setDisplayedChallenge(null)
|
||||
if (response)
|
||||
setError([response.statusCode, response.message])
|
||||
else if (error)
|
||||
@ -64,12 +68,12 @@ export default function ChallengesList() {
|
||||
auth,
|
||||
onPostSuccess: () => {
|
||||
setSuccessMessage("Le défi a bien été supprimé !")
|
||||
setSuccessSnackbarVisible(true)
|
||||
setEditChallengeVisible(false)
|
||||
setDisplayedChallenge(null)
|
||||
queryClient.invalidateQueries({ predicate: (query) => query.queryKey[0] === 'get-challenges' })
|
||||
},
|
||||
onError: ({ response, error }) => {
|
||||
setErrorVisible(true)
|
||||
setDisplayedChallenge(null)
|
||||
if (response)
|
||||
setError([response.statusCode, response.message])
|
||||
else if (error)
|
||||
@ -132,7 +136,7 @@ export default function ChallengesList() {
|
||||
</Snackbar>
|
||||
<FAB
|
||||
icon='plus'
|
||||
style={styles.addButton}
|
||||
style={{ ...styles.addButton, bottom: errorVisible || successSnackbarVisible ? 80 : styles.addButton.bottom }}
|
||||
onPress={() => {
|
||||
if (editChallengeId) {
|
||||
setEditChallengeTitle("")
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ConflictException, Injectable, NotFoundException } from '@nestjs/common'
|
||||
import { BadRequestException, ConflictException, Injectable, NotFoundException } from '@nestjs/common'
|
||||
import { CreateChallengeDto } from './dto/create-challenge.dto'
|
||||
import { UpdateChallengeDto } from './dto/update-challenge.dto'
|
||||
import { Challenge, Player } from '@prisma/client'
|
||||
@ -13,6 +13,8 @@ export class ChallengesService {
|
||||
|
||||
async create(createChallengeDto: CreateChallengeDto): Promise<Challenge> {
|
||||
const data = { ...createChallengeDto }
|
||||
if (await this.prisma.challenge.findFirst({ where: { title: createChallengeDto.title } }))
|
||||
throw new BadRequestException(`Un défi existe déjà avec pour titre « ${createChallengeDto.title} ».`)
|
||||
return await this.prisma.challenge.create({ data: data })
|
||||
}
|
||||
|
||||
@ -40,6 +42,8 @@ export class ChallengesService {
|
||||
async update(id: number, updateChallengeDto: UpdateChallengeDto): Promise<Challenge> {
|
||||
if (!await this.findOne(id))
|
||||
throw new NotFoundException(`Aucun défi n'existe avec l'identifiant ${id}`)
|
||||
if (await this.prisma.challenge.findFirst({ where: { title: updateChallengeDto.title, id: { not: id } } }))
|
||||
throw new BadRequestException(`Un défi existe déjà avec pour titre « ${updateChallengeDto.title} ».`)
|
||||
return await this.prisma.challenge.update({
|
||||
where: { id },
|
||||
data: updateChallengeDto,
|
||||
|
Loading…
Reference in New Issue
Block a user