--- tags: backend, API --- # API ## 取得請假紀錄 - [name=brian] Path: `/api/v1/record` Request: | Method | Header | |:------:|:------------------------------------- | | POST | authorization: Bearer "\<JWT TOKEN\>" | body: ``` { "paging": { "offset": 0, "limit": 0 }, "search": {}, "filter": { "status": all、approved、pending、refused }, "order": { "column": "created_at", "direction": "ASC" } } ``` Response: - Status code 200 ```json! { "code":0, "msg":"SUCCESS", "data":{ "hasNextPage":true, "records":[ { "uuid":"3c4ea096-e04f-40f1-8911-6846f1084979", "name":"資料庫", "code":"1234", "date":"2022/10/18", "weekday":4, "sessions":[ 5, 6, 7 ], "teacher":"大衛", "leaveType":"病假", "status":"approved", "sendTime":"2022/10/17 12:30" } ] } } ``` status: approved pending refused ## 判斷登入 - [name=yaya] Path: `/api/v1/login` Request: | Method | Header |request body | |:------:|:-----------------------:|:---------------------------------------------------------------------------------------------| | POST | |```{"studentId": "test1","password": "1"} ```| Response: - Status code 200 ```json! { "code": 0, "msg": "SUCCESS", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZDRlOGQ5YTA2MWMxYTJjMDIxY2JlMTgiLCJpYXQiOjE1NjU4NTczMjAsImV4cCI6MTU2NTk0MzcyMH0.GQVyQJLmwXd2jQZsjZ8n6cAWD0HQGjvlp2Mk8kAsGy8", "studentId": "U10816014", } } ``` - Status code 401 ```json! { "code": 11002, "msg": "帳號或密碼錯誤,請重新輸入", "data": [] } { "code": 11006, "msg": "帳號或密碼為空,請重新輸入", "data": [] } ``` - Status code 403 ```json! { "code": 11003, "msg": "Suspended account", "data": [] } ``` - Status code 504 ```json! { "code": 11004, "msg": "Timeout", "data": [] } ``` - Status code 500 ```json! { "code": 11005, "msg": "Other", "data": [] } ``` ## 取得請假類別 - [name=nick] Path: `/api/v1/leave-type` Request: | Method | Header | |:------:|:------ | | GET | | Response: - Status code 200 ```json! { "code": 0, "msg": "SUCCESS", "data": { "11": { "name": "早退", "shortName": "退" }, "21": { "name": "事假", "shortName": "事" }, "22": { "name": "病假", "shortName": "病" }, ... } } ``` ## 取得課程 - [name=brian] Path: `/api/v1/course?search_date=2022/10/18` Request: | Method | Header | Params | |:------:|:------------------------------------- |:------------------------- | | GET | authorization: Bearer "\<JWT TOKEN\>" | search_date: "2022/10/18" | Response: - Status code 200 ```json! { "code":0, "msg":"SUCCESS", "data":[ { "name":"資料庫", "academic_year":"111", "semester":"1", "code":"1234", "date":"2022/10/18", "weekday":4, "sessions":[ 5, 6, 7 ], } ] } ``` - semester:學期 - 上學期: 1 - 下學期: 2 - 暑假: 5 - 寒假: 6 - year: 學年 - leave_type code mapping: | 假別代碼 | 假別名稱 | 假別簡稱 | |:--------:|:-------- |:-------- | | 0 | | | | 11 | 早退 | 退 | | 21 | 事假 | 事 | | 22 | 病假 | 病 | | 23 | 公假 | 公 | | 24 | 喪假 | 喪 | | 25 | 婚假 | 婚 | | 26 | 孕(產)假 | 產 | | 27 | 哺育假 | 哺 | | 28 | 防疫假 | 疫 | | 29 | 公傷假 | 傷 | | 30 | 生理假 | 生 | | 51 | 請假 | 假 | | 52 | 疫苗假 | 苗 | ## post leave apply - [name=yaya] Path: `/api/v1/leave-apply` Request: | Method | Header | |:------:|:------ | | POST | authorization: Bearer “<JWT TOKEN>” | ```json! { "course": { "name": "string", "academicYear": 111, "semester": 1, "courseCode": "0010", "sessions": [ 0 ] }, "date": "202/12/28", "leaveType": "公傷假", "reason": "string" } ``` Response: - Status code 200 ```json! { "code": 0, "msg": "SUCCESS", "data": [] } ``` - Status code 500 ```json! { "code": 8, "msg": "已經有該天該節課申請資料", "data": [] } ``` 備註: - code:8 -msg:"已經有該天該節課申請資料" -msg:"session not matched" -msg:"course not matched" -msg:"leave type not matched" ## logout - [name=yaya] Path: `/api/v1/logout` Request: | Method | Header | |:------:|:------ | | POST | authorization:“<JWT TOKEN>” | Response: - Status code 200 ```json! { "code": 0, "msg": "SUCCESS", "data": [] } ```