Skip to content

API for managing time-entries in Teamdeck, allowing for timer synchronization between clients

Notifications You must be signed in to change notification settings

arkus7/teamdeck-tracker-api

Repository files navigation

Teamdeck GraphQL API

GraphQL wrapper over the Teamdeck REST API created for needs of creating custom integrations with the Teamdeck product.

Running the app

Prerequisites

  • Rust (nightly) installed
  • Cargo installed

Environmental variables

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 settings
  • GOOGLE_OAUTH2_CLIENT_ID - Google OAuth2 client ID used for Google authorization
  • GOOGLE_OAUTH2_CLIENT_SECRET - Google OAuth2 client secret used for Google authorization
  • GOOGLE_OAUTH2_REDIRECT_URI - URI to which the user will be redirected after successful authorization
  • JWT_ACCESS_TOKEN_SECRET - secret for creating access tokens
  • JWT_REFRESH_TOKEN_SECRET - secret for creating refresh tokens

Optional ENVs

  • PORT- port on which the app should listen for requests (default: 8000)

Run the application

Run locally:

cargo run

Build and run via compiled binary:

cargo build --release 
./target/release/teamdeck_tracker_api

🚧 Roadmap

Teamdeck API client

Booking

  • Return all bookings
  • Add new booking
  • Return single booking
  • Update booking
  • Delete booking
  • Update booking tags for booking
Booking tags
  • Return booking tags
  • Add new booking tag
  • Return single booking tag
  • Update booking tag
  • Delete booking tag

Custom fields

  • Return custom fields
  • Add new custom field
  • Return single custom field
  • Update custom field
  • Delete custom field
Custom field values
  • 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

Organization

  • Return organization information

Holidays

  • Return holidays in organization
  • Add a new holidays
  • Return single holiday
  • Update a holiday
  • Delete holiday

Projects

  • 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

Resources

  • 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

Time entries

  • 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
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

Vacations

  • Return vacations in organization
  • Add new vacation
  • Return single vacation
  • Update vacation
  • Delete vacation
Vacation periods
  • Return vacation periods
  • Return single vacation period
Vacation reasons
  • Return vacation reasons
  • Return single vacation reason

Milestones

  • Return milestones in organization
  • Add a new milestone
  • Return single milestone
  • Update milestone
  • Delete milestone

Organization units

  • Return organization units
  • Add a new units
  • Return single unit
  • Update an unit
  • Delete an unit

GraphQL wrapper

  • 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:

About

API for managing time-entries in Teamdeck, allowing for timer synchronization between clients

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published