diff --git a/docs/attendance.md b/docs/attendance.md index aff2d9a..472c472 100644 --- a/docs/attendance.md +++ b/docs/attendance.md @@ -25,30 +25,84 @@ The final two fields are not exposed in the interface for obvious reasons. Retrieve attendance records by member ID or date. ```graphql -# Get attendance by member ID +# Get attendance by member ID during a certain time period query { - attendance(memberId: 1) { + member (memberId: 1) { + attendance (startDate: ,endDate: ) { + records { + attendanceId + date + isPresent + timeIn + timeOut + } + } + } +} +``` + +Get all attendance for a specific date + +```graphql +query { + allMembers { + memberId + name + attendance { + records(startDate: , endDate: ) { attendanceId date isPresent timeIn timeOut + } } + } } ``` -Get all attendance for a specific date +Get absent and present count for member during a time period ```graphql query { - attendanceByDate(date: "2025-02-27") { - attendanceId + member (memberId: ) { + memberId + name + attendance { + records { + presentCount(startDate: ,endDate: ) + absentCount(startDate: ,endDate: ) + } + } + } +} +``` + +Get all members attendance for a particular date +```graphql +query { + allMembers { memberId name - year - isPresent - timeIn - timeOut + attendance { + onDate (date: ) { + isPresent + timeIn + timeOut + } + } + } +} +``` + +Get present or absent count of a particular time period +```graphql +query { + allMembers { + attendance { + presentCount(startDate: ,endDate: ) + absentCount(startDate: ,endDate: ) + } } } ``` @@ -59,17 +113,16 @@ Record a member's attendance for the day. ```graphql mutation { markAttendance( - input: { memberId: 1 date: "2025-01-15" timeIn: "09:00:00" - timeOut: "17:00:00" - } + timeOut: "17:00:00" ) { - attendanceId - isPresent - timeIn - timeOut + attendanceId: + date: + isPresent: + timeIn: + timeOut: } } ``` diff --git a/docs/member.md b/docs/member.md index 04fc882..9fa0bc6 100644 --- a/docs/member.md +++ b/docs/member.md @@ -23,15 +23,45 @@ struct Member { ## Queries -### Get Member -Retrieve member details by ID, roll number, or Discord ID. +All queries are split into allMembers and member root queries +allMembers can be filtered by year or track, while member needs memberId or email +### Details of all members +Retrieve the details of all members optionally fitered by year or track ```graphql query { - getMember(rollNo: "AM.XX.U4XXX") { + allMembers (year, track) { + memberId + rollIo + name + email + sex + year + hostel + macAddress + discordId + groupId + track + } +} +``` + +### Details of single member +Retrieve a single member's details using their either email or memberId +```graphql +query { + member (memberId:00, email:"something@gmail.com" ) { + memberId + rollNo name email + sex year + hostel + macAddress + discordId + groupId + track } } ``` @@ -40,7 +70,6 @@ query { ### Create Member Add a new member to the database. - ```graphql mutation { createMember( @@ -62,3 +91,28 @@ mutation { } } ``` + +### Update Member +Update details of an existing member +```graphql +mutation { + updateMember ( + input: { + memberId + rollNo + name + email + sex + year + hostel + macAddress + discordId + groupId + track + } + ) { + memberId + name + } +} +``` \ No newline at end of file diff --git a/docs/streaks.md b/docs/streaks.md index b988469..0e688fc 100644 --- a/docs/streaks.md +++ b/docs/streaks.md @@ -16,13 +16,41 @@ struct StatusUpdateStreak { ## Queries -### Get Streak +### Members records in a time period +Retrieve members status update records in a given time period ```graphql query { - getUpdateStreak(memberId: 1) { - currentStreak - maxStreak + member (memberId: ) { + memberId + name + status { + records(startDate: ,endDate: ) { + isSent + updateId + memberId + date + } } + } +} +``` + +### Members records on a date +Retrieve members status update records on a certain date +```graphql +query { + allMembers { + memberId + name + status { + onDate (date: ) { + isSent + updateId + memberId + date + } + } + } } ``` @@ -31,13 +59,10 @@ query { ### Increment Streak ```graphql mutation { - incrementStreak( - input: { - memberId: 1 - } - ) { - currentStreak - maxStreak + incrementStreak(emails: ) { + memberId + date + isSent } } ``` \ No newline at end of file