diff --git a/schema.graphql b/schema.graphql index 7a012b1..2b22c48 100644 --- a/schema.graphql +++ b/schema.graphql @@ -301,6 +301,7 @@ type Mutation { online(ancode: Int!): Boolean! placesWithSockets(ancode: Int!): Boolean! possibleDays(ancode: Int!, days: [String!]!): Boolean! + prePlanRoom(ancode: Int!, mtknr: String, reserve: Boolean!, roomName: String!): Boolean! removePrimussExam(input: PrimussExamInput): Boolean! rmConstraints(ancode: Int!): Boolean! rmExamFromSlot(ancode: Int!): Boolean! diff --git a/src/lib/exam/ExamWithNTAsForRoomPlanning.svelte b/src/lib/exam/ExamWithNTAsForRoomPlanning.svelte index eb4d979..4a4a0c9 100644 --- a/src/lib/exam/ExamWithNTAsForRoomPlanning.svelte +++ b/src/lib/exam/ExamWithNTAsForRoomPlanning.svelte @@ -3,7 +3,6 @@ export let showOnlyExamsWithNTAs; export let details; export let showRooms; - // import { onMount } from 'svelte'; let exam = plannedExam.zpaExam; let constraints = plannedExam.constraints; @@ -154,6 +153,25 @@ } } } + + async function prePlanRoom(ancode, room) { + const roomName = room.room.name; + const reserve = room.reserve; + const mtknr = room.ntaMtknr; + + console.log(`ancode: ${ancode}\nroomName: ${roomName}\nreserve: ${reserve}\nmtknr: ${mtknr}`); + + const res = await fetch('/api/prePlanRoom', { + method: 'POST', + body: JSON.stringify({ ancode, roomName, reserve, mtknr }), + headers: { + 'content-type': 'application/json' + } + }); + + const result = await res.json(); + console.log(`result: ${JSON.stringify(result, null, 2)}`); + } {#if show && showRoom} @@ -222,6 +240,13 @@ + {:else} + {/if} {room.room.name} ( {#each room.studentsInRoom as student} @@ -252,6 +277,13 @@ + {:else} + {/if} {room.room.name} {#if room.room.name != 'ONLINE' && room.room.name != 'No Room'} diff --git a/src/routes/api/prePlanRoom/+server.ts b/src/routes/api/prePlanRoom/+server.ts new file mode 100644 index 0000000..d2c9465 --- /dev/null +++ b/src/routes/api/prePlanRoom/+server.ts @@ -0,0 +1,26 @@ +import { env } from '$env/dynamic/private'; +import RoomNamesInSlot from '$lib/slot/RoomNamesInSlot.svelte'; +import { json } from '@sveltejs/kit'; +import { request as gqlrequest, gql } from 'graphql-request'; + +/** @type {import('./$types').RequestHandler} */ +export async function POST({ request }) { + const mutation = gql` + mutation ($ancode: Int!, $roomName: String!, $reserve: Boolean!, $mtknr: String) { + prePlanRoom(ancode: $ancode, roomName: $roomName, reserve: $reserve, mtknr: $mtknr) + } + `; + + const { ancode, roomName, reserve, mtknr } = await request.json(); + + const variables = { + ancode, + roomName, + reserve, + mtknr + }; + + const data = await gqlrequest(env.PLEXAMS_SERVER, mutation, variables); + + return json(data); +}