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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

154 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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