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"
const environment = {
host: 'go.timetac.com',
https?: boolean;
account: <ACCOUNT_NAME>,
version: 3,
account?: string;
accessToken?: string;
refreshToken?: string;
clientId?: string;
clientSecret?: string;
onTokenRefreshedCallback: (tokens) => console.log(`${tokens.accessToken} ${tokens.refreshToken}`),
onTokenRefreshFailed: () => { console.log('Intended action, such as logout')},
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.