node.js wrapper for WhenIWork APIs
Endpoints, arguments, and responses can be found on WhenIWork's documentation.
Install via npm
npm install --save wheniwork
yarn add wheniwork
let WIW = require('wheniwork').WIW;
let wiw = new WIW(apiKey, username, password);
wiw.get('shifts', {
start: new Date(2017, 03, 01),
end: new Date(2017, 03, 05)
})
.then(res => {
console.log(res.shifts);
})
.catch(err => {
console.error(err);
});
uri
: endpoint exposed via WIW, e.g.'shifts'
query
(optional) object containing query strings
wiw.get('shifts', { start: new Date() })
.then(res => {
...
uri
: endpoint exposed via WIW, e.g.'shifts'
body
: object to send in the POST body
wiw.post('shifts', {"notes": "Do a thing"})
.then(res => {
...
uri
: endpoint exposed via WIW, e.g.'shifts/{id}'
body
: object to send in the PUT body
wiw.put('shifts/15', {"notes": "Update my thing"})
.then(res => {
...
uri
: endpoint exposed via WIW, e.g.'shifts/{id}
'
wiw.delete('shifts/15')
.then(res => {
...
Generally not needed, as get
, post
, put
, and delete
should cover most requests, but if you need to pass other things in headers, might be useful
options
: request options, with defaultsoptions.method
:'GET|POST|PUT|DELETE'
(default:'GET'
)options.headers
: Object (default:'W-Token'
and'W-UserId'
are included)options.qs
: Object of queriesoptions.body
: Request body
let options = {
logRequests: true,
accountId: 12345
};
let wiw = new WIW(apikey, username, password, options);
If you want to log the http requests made to WhenIWork, enable this option
Pass in a custom log function if you have your own logging class.
If your login user has access to multiple accounts, you need to pass in an accountId
to make sure all the requests are processed correctly.
Will return the JSON object that WIW returns from it's API. See their documentation for that looks like.
Returns a subclass of Error
with the following useful properties
err.status
HTTP Status Codeerr.message
WIW Error Messageerr.code
WIW Error Code