@usecomplete/api
v1.0.0-alpha.3
Published
Please Note: The current code is written quick and dirty. Final implementation with tests and better structure will be a future iteration.
Downloads
3
Readme
api.usecheck.com
Please Note: The current code is written quick and dirty. Final implementation with tests and better structure will be a future iteration.
Status
Code
- [x] Q&D implementation
- [ ] Final implementation
- [x] Authentication
- [ ] Authorization
- [ ] Error handling
- [ ] Validation
- [ ] Test cases
- [ ] Rate Limiting
- [ ] Query size Limit
- [ ] CI
- [ ] CD
Database
- [x] Caching Layer: Redis
- [ ] Persistence Layer: Postgres
Types
- [x] DateTime
- [x] Void
- [x] Direction
User
- [x] id
- [x] updatedAt
- [x] updatedBy
- [x] createdAt
- [x] createdBy
- [x] deletedAt
- [x] deletedBy
- [x] archivedAt
- [x] archivedBy
- [x] avatarUrl
- [x] name
- [x] email
Tag
- [x] id
- [x] updatedAt
- [x] updatedBy
- [x] createdAt
- [x] createdBy
- [x] deletedAt
- [x] deletedBy
- [x] color
- [x] title
Comment
- [x] id
- [x] updatedAt
- [x] updatedBy
- [x] createdAt
- [x] createdBy
- [x] deletedAt
- [x] deletedBy
- [x] message
- [x] task
Task
- [x] id
- [x] updatedAt
- [x] updatedBy
- [x] createdAt
- [x] createdBy
- [x] deletedAt
- [x] deletedBy
- [x] archivedAt
- [x] archivedBy
- [x] tags
- [x] items
- [x] count
- [x] isComplete
- [x] isStarred
- [x] title
- [x] description
- [x] dueAt
- [x] assignedUser
- [x] subtasks
- [x] tasksOpen
- [x] items
- [x] count
- [x] tasksComplete
- [x] items
- [x] count
- [x] tasksCount
- [x] tasksOpen
- [x] project
- [x] parentTask
- [x] comments
- [x] items
- [x] count
Project
- [x] id
- [x] updatedAt
- [x] updatedBy
- [x] createdAt
- [x] createdBy
- [x] deletedAt
- [x] deletedBy
- [x] archivedAt
- [x] archivedBy
- [x] tags
- [x] items
- [x] count
- [x] title
- [x] tasksOpen
- [x] items
- [x] count
- [x] tasksComplete
- [x] items
- [x] count
- [x] folder
Folder
- [x] id
- [x] updatedAt
- [x] updatedBy
- [x] createdAt
- [x] createdBy
- [x] deletedAt
- [x] deletedBy
- [x] archivedAt
- [x] archivedBy
- [x] tags
- [x] items
- [x] count
- [x] title
- [x] projects
- [x] items
- [x] count
Trash
- [x] tasks
- [x] items
- [x] count
- [x] projects
- [x] items
- [x] count
- [x] folders
- [x] items
- [x] count
Queries
- [x] whoami
- [x] user
- [x] task
- [x] tag
- [x] tags
- [x] items
- [x] count
- [x] project
- [x] projects
- [x] items
- [x] count
- [x] folder
- [x] folders
- [x] items
- [x] count
- [x] inbox
- [x] tasksOpen
- [x] items
- [x] count
- [x] tasksComplete
- [x] items
- [x] count
- [x] tasksCount
- [x] tasksOpen
- [x] starred
- [x] tasksOpen
- [x] items
- [x] count
- [x] tasksComplete
- [x] items
- [x] count
- [x] tasksCount
- [x] tasksOpen
- [ ] today
- [ ] tasksOpen
- [ ] items
- [ ] count
- [ ] tasksComplete
- [ ] items
- [ ] count
- [ ] tasksCount
- [ ] tasksOpen
- [ ] tomorrow
- [ ] tasksOpen
- [ ] items
- [ ] count
- [ ] tasksComplete
- [ ] items
- [ ] count
- [ ] tasksCount
- [ ] tasksOpen
- [x] trash
- [ ] all
- [ ] tasksOpen
- [ ] items
- [ ] count
- [ ] tasksComplete
- [ ] items
- [ ] count
- [ ] tasksCount
- [ ] tasksOpen
Mutations
Auth
- [x] sendMagicLink
- [x] authenticate
User
- [x] updateUser
- [x] archiveUser
- [x] restoreUser
- [x] deleteUser
Tag
- [x] createUser
- [x] updateUser
- [x] deleteUser
Task
- [x] createTask
- [x] updateTask
- [x] archiveTask
- [x] restoreTask
- [x] deleteTask
- [x] assignTask
- [x] completeTask
- [x] uncompleteTask
- [x] starTask
- [x] unstarTask
- [x] addTagToTask
- [x] removeTagFromTask
- [x] addSubtaskToTask
- [x] removeSubtaskFromTask
- [x] moveSubtask
- [x] moveInboxTask
- [x] moveStarredTask
Comment
- [x] createComment
- [x] updateComment
- [x] archiveComment
- [x] restoreComment
- [x] deleteComment
Project
- [x] createProject
- [x] updateProject
- [x] archiveProject
- [x] restoreProject
- [x] deleteProject
- [x] addTagToProject
- [x] removeTagFromProject
- [x] moveProjectToFolder
- [x] moveProjectTask
- [x] moveProject
Folder
- [x] createFolder
- [x] updateFolder
- [x] archiveFolder
- [x] restoreFolder
- [x] deleteFolder
- [x] addTagToFolder
- [x] removeTagFromFolder
- [x] moveFolder
Getting started
First clone the repository and install dependencies.
$ git clone https://github.com/usecheck/api.usecheck
$ npm ci
$ npm run start
Install and start redis server
Start local server
$ npm run dev
Generating types
The next step is updating the generated types like following:
$ npm run generate:types
Model
A model represents a type and handles the async loading of its properites
Repositories
A repository handles the read and write logic for queries and mutations