@timetac/js-client-library
TypeScript icon, indicating that this package has built-in type declarations

2.16.0 • Public • Published

TimeTac Client Library

This library is a thin wrapper facilitating requests to the TimeTac REST API. For more information please visit the API documentation.

Installation

Use the package manager yarn or npm to install TimeTac Client Library.

Using yarn:

yarn add @timetac/js-client-library

Using npm:

npm install @timetac/js-client-library

Obtaining Access Credentials

Existing customers can activate API access or request access to a sandbox environment by contacting support@timetac.com. This process usually takes less than two business days and is currently free of charge.

If you are not a customer yet, you may set up a free trial and contact support@timetac.com to obtain a client_id and client_secret for your personal demo account.

Finally, if you just want to run a few requests, you may use the public API playground sandbox account. This account is reset to its initial state in regular intervals. Access credentials are available in the react playground's README.

Usage

import Api from "@timetac/js-client-library"
//Only account name is required.
const environment = {
  host: 'go.timetac.com',
  https?: boolean;
  account: <ACCOUNT_NAME>,
  version: 3,
  account?: string;
  accessToken?: string;
  refreshToken?: string;
  clientId?: string;
  clientSecret?: string;
  //Callback, called on refresh of the token. object of access token and refresh {accessToken, refreshTOken}  token are passed as parameter
  onTokenRefreshedCallback: (tokens) => console.log(`${tokens.accessToken} ${tokens.refreshToken}`),
  //Callback called when refresh of the token fails.
  onTokenRefreshFailed: () => { console.log('Intended action, such as logout')},
  //If true, it tries to refresh token on failed request. Default true.
  shouldAutoRefreshToken?: boolean;
  timeout?: number;
}

const authCredentials = {
  grant_type: 'password',
  client_id: <CLIENT_ID>,
  client_secret: <CLIENT_SECRET>,
  username: <USER_NAME>,
  password: <PASSWORD>
}

const api = new Api(environment);

async() => {
  await api.authentication.login(authCredentials);

  api.timeTrackings.read()
    .then({ Results }} => {
      console.log(Results)
    });

  api.users.readMe().then({ Results } => {
    console.log(Results);
  });

  api.absenceDays.read(
    new RequestParamsBuilder<AbsenceDay>()
    .eq('user_id', 1)
    .gteq('date', '2020-01-01')
    .build()
  );

  api.absenceDay.read({
    user_id: '1',
    date: '2020-01-01',
    _op__date: 'gteq'
  })
}

List of supported endpoints

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

The shortest, simplest way of running the test suite is the following command:

yarn test

License

Apache License 2.0

Troubleshooting

Cross-Origin Resource Sharing (CORS)

When experiencing issues with cross-origin resource sharing (CORS), you will have to configure a proxy server for development. This can be done, for example, with http-proxy-middleware. An example configuration for a React project can be found in the react playground.

Readme

Keywords

Package Sidebar

Install

npm i @timetac/js-client-library

Weekly Downloads

5,969

Version

2.16.0

License

Apache-2.0

Unpacked Size

618 kB

Total Files

861

Last publish

Collaborators

  • sergej.chak
  • tomi.timetac