GraphQL wrapper over the Teamdeck REST API created for needs of creating custom integrations with the Teamdeck product.
- Rust (nightly) installed
- Cargo installed
This project uses dotenv
to load the environmental variables.
In order to run the app, you need to have set these environmental variables:
TEAMDECK_API_KEY
- API key for interacting with Teamdeck API. Can be generated by the owner of organization in Teamdeck integrations settingsGOOGLE_OAUTH2_CLIENT_ID
- Google OAuth2 client ID used for Google authorizationGOOGLE_OAUTH2_CLIENT_SECRET
- Google OAuth2 client secret used for Google authorizationGOOGLE_OAUTH2_REDIRECT_URI
- URI to which the user will be redirected after successful authorizationJWT_ACCESS_TOKEN_SECRET
- secret for creating access tokensJWT_REFRESH_TOKEN_SECRET
- secret for creating refresh tokens
PORT
- port on which the app should listen for requests (default:8000
)
Run locally:
cargo run
Build and run via compiled binary:
cargo build --release
./target/release/teamdeck_tracker_api
- Return all bookings
- Add new booking
- Return single booking
- Update booking
- Delete booking
- Update booking tags for booking
- Return booking tags
- Add new booking tag
- Return single booking tag
- Update booking tag
- Delete booking tag
- Return custom fields
- Add new custom field
- Return single custom field
- Update custom field
- Delete custom field
- Return custom field values
- Add new custom field value
- Return single custom field value
- Update custom field value
- Delete custom field value
- Return custom field value from a chosen custom field & resource
- Return custom field value from a chosen custom field & project
- Return organization information
- Return holidays in organization
- Add a new holidays
- Return single holiday
- Update a holiday
- Delete holiday
- Return projects
- Add a new project
- Return single project
- Update project
- Assign a custom field value to a project
- Delete connection between custom field value and project
- Return resources
- Add a new basic resource
- Return single resource
- Assign a custom field value to resource
- Delete connection between custom field value and resource
- Return time entries
- Add a new time entry assigned to resource
- Return single time entry
- Update time entry
- Delete time entry
- Update time entry tags
- Return time entry tags
- Add a new time entry tag
- Return single time entry tag
- Update time entry tag
- Delete time entry tag
- Return vacations in organization
- Add new vacation
- Return single vacation
- Update vacation
- Delete vacation
- Return vacation periods
- Return single vacation period
- Return vacation reasons
- Return single vacation reason
- Return milestones in organization
- Add a new milestone
- Return single milestone
- Update milestone
- Delete milestone
- Return organization units
- Add a new units
- Return single unit
- Update an unit
- Delete an unit
- Google authorization
- Get all projects
- Get resource by ID
- Get all resources
- Get authorized resource
- Get all time entry tags
- Get time entry tag by ID
- Create time entry
- Store time entry tags
- Update time entry
- Update time entry tags
- Refreshing tokens
- Using data loaders to optimize requests
- Cache responses from Teamdeck API
- Authorization guards for actions available only for admins/managers
Resources: