Skip to content

Submissions Endpoints

N Vijay Narayanan edited this page Aug 16, 2022 · 11 revisions

Get a submission via submission ID

GET: /api/submissions/:submissionId

  • Authorization Required: authorizeSignedIn

Response Body:

{
    submission: {
        id: number;
        deadline: Deadline;
        deadlineId: number;
        sections: Section[];
        isDraft: true;
        answers: Answer[];
        fromProject?: Project;
        fromProjectId?: number;
        fromUser?: User;
        fromUserId?: number;
        toProject?: Project;
        toProjectId?: number;
        toUser?: User;
        toUserId?: number;
        updatedAt: DateTime;
    }
}

Create a new submission

POST: /api/submissions/

  • Authorization Required: authorizeSignedIn

Request Body:

{
    deadlineId: number;
    fromProjectId?: number;
    fromUserId?: number;
    toProjectId?: number;
    toUserId?: number;
    answers?: Answer[] (without submission id)
}

Response Body:

{
    id: number;
    deadlineId: number;
    isDraft: true;
    answers: Answer[];
    fromProjectId?: number;
    fromUserId?: number;
    toProjectId?: number;
    toUserId?: number;
}

Update a submission

PUT: /api/submissions/:submissionId

  • Authorization Required: authorizeSubmitter

Request Body:

{
    answers: Answer[];
    isDraft: boolean;
}

Response Body:

{
    id: number;
    deadlineId: number;
    isDraft: true;
    answers: Answer[];
    fromProjectId?: number;
    fromUserId?: number;
    toProjectId?: number;
    toUserId?: number;
}

Get Submissions' Anonymous Questions via User ID

GET: /api/submissions/users/:userId/anonymous-questions

  • Authorization Required: authorizeSelf
  • Get all submissions to a user (specified via the user ID), containing ONLY anonymous questions and their respective answers with any identifying information removed
{
    deadlines: {
        deadline: Deadline;
        submissions: {
            sections: Section[]; // Only anonymous questions 
            answers: Answer[]; // Only answers to anonymous questions
        }[]
    }[]
}

NUS Skylab v2 - Backend

Introduction

Project Organization

Project Requirements

Endpoints

Clone this wiki locally