mirror of
https://github.com/Floriansylvain/PopCorn.git
synced 2026-08-19 11:43:23 +02:00
Finition de la base de donnée
This commit is contained in:
@@ -3,7 +3,7 @@ import { PrismaClient } from "@prisma/client";
|
||||
import createError from "http-errors"
|
||||
|
||||
import jeux from './route/jeux.js'
|
||||
|
||||
import groupe from './route/groupe.js'
|
||||
const app = express()
|
||||
|
||||
app.use(express.json())
|
||||
@@ -13,7 +13,7 @@ const port = 3500
|
||||
|
||||
|
||||
app.use('/',jeux)
|
||||
|
||||
app.use('/',groupe)
|
||||
|
||||
// run the server
|
||||
app.listen(port, () => {
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
import { optional, string, z } from "zod";
|
||||
|
||||
const groupeValidation = z.object({
|
||||
name : z.string(),
|
||||
logo : z.string(),
|
||||
|
||||
});
|
||||
|
||||
export default groupeValidation;
|
||||
+2
-1
@@ -4,7 +4,8 @@ const jeuxValidation = z.object({
|
||||
Title : z.string(),
|
||||
Description : z.string(),
|
||||
Picture: z.string(),
|
||||
Worker : z.string()
|
||||
lien : z.string(),
|
||||
groupe_id : z.number()
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- Added the required column `url` to the `Jeux` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE `Jeux` ADD COLUMN `url` VARCHAR(191) NOT NULL;
|
||||
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `url` on the `Jeux` table. All the data in the column will be lost.
|
||||
- Added the required column `lien` to the `Jeux` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE `Jeux` DROP COLUMN `url`,
|
||||
ADD COLUMN `lien` VARCHAR(191) NOT NULL;
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
Warnings:
|
||||
|
||||
- You are about to drop the column `Workers` on the `Jeux` table. All the data in the column will be lost.
|
||||
- Added the required column `groupe_id` to the `Jeux` table without a default value. This is not possible if the table is not empty.
|
||||
|
||||
*/
|
||||
-- AlterTable
|
||||
ALTER TABLE `Jeux` DROP COLUMN `Workers`,
|
||||
ADD COLUMN `groupe_id` INTEGER NOT NULL;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Groupe` (
|
||||
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
||||
`name` VARCHAR(191) NOT NULL,
|
||||
`logo` VARCHAR(255) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `Jeux` ADD CONSTRAINT `Jeux_groupe_id_fkey` FOREIGN KEY (`groupe_id`) REFERENCES `Groupe`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
+10
-1
@@ -10,10 +10,19 @@ datasource db {
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model Groupe{
|
||||
id Int @id @default(autoincrement())
|
||||
name String
|
||||
logo String @db.VarChar(255)
|
||||
jeux Jeux []
|
||||
}
|
||||
model Jeux{
|
||||
id Int @id @default(autoincrement())
|
||||
Title String
|
||||
Description String
|
||||
Picture String @db.VarChar(255)
|
||||
Workers String
|
||||
lien String
|
||||
groupe_id Int
|
||||
groupe Groupe @relation(fields: [groupe_id], references: [id])
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import express from "express";
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
import createError from "http-errors"
|
||||
import groupeValidation from "../groupeValidator.js";
|
||||
|
||||
const router = express.Router()
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
|
||||
|
||||
router.post('/groupe', async(req,res)=>{
|
||||
let groupData;
|
||||
groupData = groupeValidation.parse(req.body)
|
||||
let group = await prisma.groupe.create({
|
||||
data:{
|
||||
name : groupData.name,
|
||||
logo : groupData.logo,
|
||||
|
||||
}
|
||||
})
|
||||
res.json(group)
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
export default router;
|
||||
+11
-2
@@ -11,15 +11,24 @@ const prisma = new PrismaClient();
|
||||
router.post('/jeux',async (req,res,next)=>{
|
||||
let jeuxData;
|
||||
jeuxData = jeuxValidation.parse(req.body)
|
||||
const jeux = await prisma.jeux.create({
|
||||
let jeux = await prisma.jeux.create({
|
||||
data:{
|
||||
Title : jeuxData.Title,
|
||||
Description : jeuxData.Description,
|
||||
Picture : jeuxData.Picture,
|
||||
Workers : jeuxData.Worker
|
||||
lien : jeuxData.lien,
|
||||
groupe:{
|
||||
connect:{
|
||||
id : jeuxData.groupe_id
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
res.json(jeux)
|
||||
console.log(jeux)
|
||||
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user