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 createError from "http-errors"
|
||||||
|
|
||||||
import jeux from './route/jeux.js'
|
import jeux from './route/jeux.js'
|
||||||
|
import groupe from './route/groupe.js'
|
||||||
const app = express()
|
const app = express()
|
||||||
|
|
||||||
app.use(express.json())
|
app.use(express.json())
|
||||||
@@ -13,7 +13,7 @@ const port = 3500
|
|||||||
|
|
||||||
|
|
||||||
app.use('/',jeux)
|
app.use('/',jeux)
|
||||||
|
app.use('/',groupe)
|
||||||
|
|
||||||
// run the server
|
// run the server
|
||||||
app.listen(port, () => {
|
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(),
|
Title : z.string(),
|
||||||
Description : z.string(),
|
Description : z.string(),
|
||||||
Picture: 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")
|
url = env("DATABASE_URL")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model Groupe{
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
name String
|
||||||
|
logo String @db.VarChar(255)
|
||||||
|
jeux Jeux []
|
||||||
|
}
|
||||||
model Jeux{
|
model Jeux{
|
||||||
id Int @id @default(autoincrement())
|
id Int @id @default(autoincrement())
|
||||||
Title String
|
Title String
|
||||||
Description String
|
Description String
|
||||||
Picture String @db.VarChar(255)
|
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)=>{
|
router.post('/jeux',async (req,res,next)=>{
|
||||||
let jeuxData;
|
let jeuxData;
|
||||||
jeuxData = jeuxValidation.parse(req.body)
|
jeuxData = jeuxValidation.parse(req.body)
|
||||||
const jeux = await prisma.jeux.create({
|
let jeux = await prisma.jeux.create({
|
||||||
data:{
|
data:{
|
||||||
Title : jeuxData.Title,
|
Title : jeuxData.Title,
|
||||||
Description : jeuxData.Description,
|
Description : jeuxData.Description,
|
||||||
Picture : jeuxData.Picture,
|
Picture : jeuxData.Picture,
|
||||||
Workers : jeuxData.Worker
|
lien : jeuxData.lien,
|
||||||
|
groupe:{
|
||||||
|
connect:{
|
||||||
|
id : jeuxData.groupe_id
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
res.json(jeux)
|
res.json(jeux)
|
||||||
|
console.log(jeux)
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user