Django GraphQL Simple ToDo

HOW TO RUN

just run the following instructions:

python -m venv venv
pip install -r requirements.txt
source venv/bin/activate
chmod 777 remove_migrations.sh
./remove_migrations.sh
python manage.py runserver

the output should be something like this:

System check identified 1 issue (0 silenced).
November 12, 2021 - 13:38:31
Django version 3.2.9, using settings 'DjangoGraphQLToDoListApplication.settings'
Starting development server at 
Quit the server with CONTROL-C.

Usage

just go to http://127.0.0.1:8000/ then,

Test Queries and Mutations

fetching all users:

query {
  users {
    id
    username
  }
}

create a new user:

mutation {
  userCreate(username: "alice", email: "[email protected]", password:"password") {
    user {
      id
      username
      email
      dateJoined
    }
  }
}

Login

mutation {
  tokenAuth(username: "your user name", password: "your password") {
    token
    payload
    refreshExpiresIn
  }
}

currentUser

query{
  currentUser{
    id
  }
}

users

query{
  users{
    id
  }
}

user Create Todo

mutation {
  userCreateTodo(title: "alice") {
    todo {
      id
      title
    }
  }
}

user update Todo state

mutation {
  userUpdateTodoState(id:17, state: "done") {
    todo {
      id
      title
    }
  }
}

user delete Todo

mutation {
  userDeleteTodo(id:17) {
    todo {
      id
      title
    }
  }
}

Filtering

query {
  todos(title_Icontains: "e", state: "in-progress") {
    edges {
      node {
        title
      }
    }
  }
}

GitHub

View Github