Skip to content

Instantly share code, notes, and snippets.

@hamouj
Last active May 23, 2023 19:35
Show Gist options
  • Save hamouj/c70f384ddce446cca675367dbbc5a6d2 to your computer and use it in GitHub Desktop.
Save hamouj/c70f384ddce446cca675367dbbc5a6d2 to your computer and use it in GitHub Desktop.
To Do Guru API Contract

getHousehold Query

Request

query getHousehold($email: String!) {
    household (email: $email) {
        id
        name
        members {
            id
            name
        }
        sunday {
            choreName
            assignedMember
            duration
        }
        monday {
            choreName
            assignedMember
            duration
        }
        tuesday {
            choreName
            assignedMember
            duration
        }
        wednesday {
            choreName
            assignedMember
            duration
        }
        thursday {
            choreName
            assignedMember
            duration
        }
        friday {
            choreName
            assignedMember
            duration
        }
        saturday {
            choreName
            assignedMember
            duration
        }
        errors
    }
}

GraphQL Variable

{
    "email": "smith@example.com"
}

Response

{
    "data": {
        "household": {
            "id": "1",
            "name": "The Smith's House",
            "members": [
                {
                    "id": "1",
                    "name": "Will"
                },
                {
                    "id": "2",
                    "name": "Liz"
                },
                {
                    "id": "3",
                    "name": "Alec"
                }
            ],
            "sunday": null,
            "monday": [
                {
                    "choreName": "Clean Bathroom",
                    "assignedMember": "Will",
                    "duration": 45
                }
            ],
            "tuesday": [
                {
                    "choreName": "Mow",
                    "assignedMember": "Alec",
                    "duration": 30
                }
            ],
            "wednesday": [
                {
                    "choreName": "Clean Dishes",
                    "assignedMember": "Liz",
                    "duration": 15
                },
                {
                    "choreName": "Laundry",
                    "assignedMember": "Will",
                    "duration": 60
                },
                {
                    "choreName": "Vacuum",
                    "assignedMember": "Liz",
                    "duration": 45
                }
            ],
            "thursday": [
                {
                    "choreName": "Clean Dishes",
                    "assignedMember": "Alec",
                    "duration": 15
                }
            ],
            "friday": [
                {
                    "choreName": "Clean Dishes",
                    "assignedMember": "Alec",
                    "duration": 15
                },
                {
                    "choreName": "Sweep",
                    "assignedMember": "Liz",
                    "duration": 60
                }
            ],
            "saturday": [
                {
                    "choreName": "Vacuum",
                    "assignedMember": "Alec",
                    "duration": 45
                }
            ],
            "errors": []
        }
    }
}

updateHousehold Mutation

Request

mutation {
  updateHousehold(input: {
      id: 1
    })
  {
    household {
      id
      name
      email
      }
     errors
   }
}

Response

{
   "data": {
       "updateHousehold": {
           "household": {
               "id": "1",
               "name": "The Smith's House",
               "email": "smith@example.com"
           },
           "errors": []
       }
   }
}

createMember Mutation

Request

mutation {
  createMember(input: {
    name: "Coolio"
    householdId: "1"
    }) 
    {
      member {
        id
        name
        }
      errors
    }
}

Response

{
    "data": {
        "createMember": {
            "member": {
                "id": "14",
                "name": "Coolio"
            },
            "errors": []
        }
    }
}

memberDelete Mutation

Request

mutation {
    memberDelete(input: {
      id: 1 
      }) 
      {
      member {
        name
        }
      errors
     }
}

Response

{
    "data": {
        "memberDelete": {
            "member": {
                "name": "Will"
            },
            "errors": []
        }
    }
}

createChore Mutation

Request

mutation {
  createChore(input: {
    householdId: 2
    name: "Wash them clothes"
    duration: 30
    day: ["Thursday", "Tuesday"]
    })
    {
    chores {
      choreName
      }
    errors
   }
}

Response

{
    "data": {
        "createChore": {
            "chores": [
                {
                    "choreName": "Wash them clothes"
                },
                {
                    "choreName": "Wash them clothes"
                }
            ],
            "errors": []
        }
    }
}

randomizeChores Mutation

Request

mutation{
    randomizeChores(input:{
        id: 3
    })
    {
        household{
            id
        }
        errors
    }
}

Response

{
    "data": {
        "randomizeChores": {
            "household": {
                "id": "3"
            },
            "errors": []
        }
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment