From d92d57c9e960c9abe35a569398224ce8fce64a9a Mon Sep 17 00:00:00 2001 From: Faraphel Date: Fri, 10 May 2024 13:41:51 +0200 Subject: [PATCH] [WIP] added api read session data --- .../connectivity/task/session/TaskSession.kt | 3 +++ .../task/session/TaskSessionManager.kt | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/faraphel/tasks_valider/connectivity/task/session/TaskSession.kt b/app/src/main/java/com/faraphel/tasks_valider/connectivity/task/session/TaskSession.kt index 8956377..84c4c37 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/connectivity/task/session/TaskSession.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/connectivity/task/session/TaskSession.kt @@ -1,10 +1,13 @@ package com.faraphel.tasks_valider.connectivity.task.session +import kotlinx.serialization.Serializable + /** * store the data of a session in the task system * @param role the role accorded to the session */ +@Serializable data class TaskSession( var role: TaskRole = TaskRole.STUDENT ) diff --git a/app/src/main/java/com/faraphel/tasks_valider/connectivity/task/session/TaskSessionManager.kt b/app/src/main/java/com/faraphel/tasks_valider/connectivity/task/session/TaskSessionManager.kt index 87a7a5d..10be9ed 100644 --- a/app/src/main/java/com/faraphel/tasks_valider/connectivity/task/session/TaskSessionManager.kt +++ b/app/src/main/java/com/faraphel/tasks_valider/connectivity/task/session/TaskSessionManager.kt @@ -94,7 +94,20 @@ class TaskSessionManager { when (method) { // get a client session data NanoHTTPD.Method.GET -> { - TODO("Faraphel: implement get") + // check the permission of the session + if (taskSession.role.permissions.contains(TaskPermission.READ)) + return NanoHTTPD.newFixedLengthResponse( + NanoHTTPD.Response.Status.FORBIDDEN, + "text/plain", + "Forbidden" + ) + + // return the session data + return NanoHTTPD.newFixedLengthResponse( + NanoHTTPD.Response.Status.OK, + "application/json", + jsonParser.toJson(taskSession) + ) } // change a client session data NanoHTTPD.Method.POST -> {