Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 69 additions & 16 deletions docs/attendance.md
Original file line number Diff line number Diff line change
Expand Up @@ -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: )
}
}
}
```
Expand All @@ -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:
}
}
```
Expand Down
62 changes: 58 additions & 4 deletions docs/member.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:"[email protected]" ) {
memberId
rollNo
name
email
sex
year
hostel
macAddress
discordId
groupId
track
}
}
```
Expand All @@ -40,7 +70,6 @@ query {

### Create Member
Add a new member to the database.

```graphql
mutation {
createMember(
Expand All @@ -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
}
}
```
47 changes: 36 additions & 11 deletions docs/streaks.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
}
}
}
```

Expand All @@ -31,13 +59,10 @@ query {
### Increment Streak
```graphql
mutation {
incrementStreak(
input: {
memberId: 1
}
) {
currentStreak
maxStreak
incrementStreak(emails: ) {
memberId
date
isSent
}
}
```
Loading