fylein / fyle-interview-intern-backend

44 stars 1.14k forks source link

Assignment - Implemented Missing API - Sheikh Abdur Rohit #44

Closed AbdurRohit closed 2 months ago

AbdurRohit commented 5 months ago

GET /principal/assignments

List all submitted and graded assignments

headers:
X-Principal: {"user_id":5, "principal_id":1}

response:
{
    "data": [
        {
            "content": "ESSAY T1",
            "created_at": "2021-09-17T03:14:01.580126",
            "grade": null,
            "id": 1,
            "state": "SUBMITTED",
            "student_id": 1,
            "teacher_id": 1,
            "updated_at": "2021-09-17T03:14:01.584644"
        }
    ]
}

GET /principal/teachers

List all the teachers

headers:
X-Principal: {"user_id":5, "principal_id":1}

response:
{
    "data": [
        {
            "created_at": "2024-01-08T07:58:53.131970",
            "id": 1,
            "updated_at": "2024-01-08T07:58:53.131972",
            "user_id": 3
        }
    ]
}

POST /principal/assignments/grade

Grade or re-grade an assignment

headers:
X-Principal: {"user_id":5, "principal_id":1}

payload:
{
    "id":  1,
    "grade": "A"
}

response:
{
    "data": {
        "content": "ESSAY T1",
        "created_at": "2021-09-17T03:14:01.580126",
        "grade": "A",
        "id": 1,
        "state": "GRADED",
        "student_id": 1,
        "teacher_id": 1,
        "updated_at": "2021-09-17T03:20:42.896947"
    }
}
  1. Added additional validations to check user authenticity in core/apis/decorators.py also fixed additional errors.
  2. Got the test coverage to 94%.
  3. Wrote the code for count_grade_A_assignments_by_teacher_with_max_grading.sql and number_of_assignments_per_state.sql.
  4. Pushed the image to docker. Use : docker pull abdurrohit/flyeapiabdur:latest.