@getoccasion/sdk
Version:
An SDK library that enables access to Occasion's application, providing a rich DSL for creating and managing bookings.
42 lines (33 loc) • 1.08 kB
JavaScript
ActiveResource.Interfaces.JsonApi.contentType = 'application/json'
class Occasion {
static baseUrl = 'https://occ.sn/api/v1'
static Client(options = {}) {
var url = options.baseUrl || Occasion.baseUrl
var token = options.token
var secret = options.secret
var immutable = options.immutable || false
if (!_.isString(token)) {
throw 'Token must be of type string'
}
// Support NodeJs
if (typeof window === 'undefined') {
var encodedToken = Buffer.from(
unescape(encodeURIComponent([token, secret].join(':')))
).toString('base64')
} else {
var encodedToken = window.btoa(unescape(encodeURIComponent([token, secret].join(':'))))
}
var libraryOptions = {
headers: {
Authorization: 'Basic ' + encodedToken
},
immutable,
strictAttributes: true
}
var resourceLibrary = ActiveResource.createResourceLibrary(url, libraryOptions)
Occasion.Modules.each(function(initializeModule) {
initializeModule(resourceLibrary)
})
return resourceLibrary
}
}