@oneblink/sdk 0.4.4-beta.1 → 0.4.4-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +7 -19
- package/package.json +48 -40
- package/tenants/civicplus.d.ts +1 -0
- package/tenants/civicplus.js +26 -0
- package/tenants/civicplus.js.map +1 -0
- package/tenants/classes/Approvals.d.ts +95 -0
- package/tenants/classes/Approvals.js +95 -0
- package/tenants/classes/Approvals.js.map +1 -0
- package/tenants/classes/DataManager.d.ts +45 -0
- package/tenants/classes/DataManager.js +68 -0
- package/tenants/classes/DataManager.js.map +1 -0
- package/tenants/classes/EmailTemplates.d.ts +100 -0
- package/tenants/classes/EmailTemplates.js +128 -0
- package/tenants/classes/EmailTemplates.js.map +1 -0
- package/tenants/classes/Forms.d.ts +667 -0
- package/tenants/classes/Forms.js +859 -0
- package/tenants/classes/Forms.js.map +1 -0
- package/tenants/classes/FormsAppEnvironments.d.ts +103 -0
- package/tenants/classes/FormsAppEnvironments.js +131 -0
- package/tenants/classes/FormsAppEnvironments.js.map +1 -0
- package/tenants/classes/FormsApps.d.ts +207 -0
- package/tenants/classes/FormsApps.js +296 -0
- package/tenants/classes/FormsApps.js.map +1 -0
- package/tenants/classes/Jobs.d.ts +102 -0
- package/tenants/classes/Jobs.js +180 -0
- package/tenants/classes/Jobs.js.map +1 -0
- package/tenants/classes/Keys.d.ts +33 -0
- package/tenants/classes/Keys.js +46 -0
- package/tenants/classes/Keys.js.map +1 -0
- package/tenants/classes/Organisations.d.ts +50 -0
- package/tenants/classes/Organisations.js +73 -0
- package/tenants/classes/Organisations.js.map +1 -0
- package/tenants/classes/PDF.d.ts +108 -0
- package/tenants/classes/PDF.js +133 -0
- package/tenants/classes/PDF.js.map +1 -0
- package/tenants/classes/TeamMembers.d.ts +34 -0
- package/tenants/classes/TeamMembers.js +55 -0
- package/tenants/classes/TeamMembers.js.map +1 -0
- package/tenants/classes/index.d.ts +13 -0
- package/tenants/classes/index.js +33 -0
- package/tenants/classes/index.js.map +1 -0
- package/tenants/classes/sendEmail.d.ts +36 -0
- package/tenants/classes/sendEmail.js +53 -0
- package/tenants/classes/sendEmail.js.map +1 -0
- package/tenants/lib/forms-schema/common.d.ts +9 -0
- package/tenants/lib/forms-schema/common.js +67 -0
- package/tenants/lib/forms-schema/common.js.map +1 -0
- package/tenants/lib/forms-schema/element-schema.d.ts +3 -0
- package/tenants/lib/forms-schema/element-schema.js +230 -0
- package/tenants/lib/forms-schema/element-schema.js.map +1 -0
- package/tenants/lib/forms-schema/elements/AbnElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/AbnElement.js +22 -0
- package/tenants/lib/forms-schema/elements/AbnElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/AutocompleteElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/AutocompleteElement.js +30 -0
- package/tenants/lib/forms-schema/elements/AutocompleteElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/BarcodeElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/BarcodeElement.js +30 -0
- package/tenants/lib/forms-schema/elements/BarcodeElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/BooleanElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/BooleanElement.js +22 -0
- package/tenants/lib/forms-schema/elements/BooleanElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/BsbElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/BsbElement.js +22 -0
- package/tenants/lib/forms-schema/elements/BsbElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/CalculationElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/CalculationElement.js +32 -0
- package/tenants/lib/forms-schema/elements/CalculationElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/CameraElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/CameraElement.js +24 -0
- package/tenants/lib/forms-schema/elements/CameraElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/CaptchaElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/CaptchaElement.js +20 -0
- package/tenants/lib/forms-schema/elements/CaptchaElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/CheckboxElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/CheckboxElement.js +25 -0
- package/tenants/lib/forms-schema/elements/CheckboxElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/CivicaNameRecordElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/CivicaNameRecordElement.js +47 -0
- package/tenants/lib/forms-schema/elements/CivicaNameRecordElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/CivicaStreetNameElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/CivicaStreetNameElement.js +22 -0
- package/tenants/lib/forms-schema/elements/CivicaStreetNameElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/ComplianceElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/ComplianceElement.js +24 -0
- package/tenants/lib/forms-schema/elements/ComplianceElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/DateElement.d.ts +5 -0
- package/tenants/lib/forms-schema/elements/DateElement.js +70 -0
- package/tenants/lib/forms-schema/elements/DateElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/DrawElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/DrawElement.js +23 -0
- package/tenants/lib/forms-schema/elements/DrawElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/EmailElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/EmailElement.js +24 -0
- package/tenants/lib/forms-schema/elements/EmailElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/FilesElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/FilesElement.js +36 -0
- package/tenants/lib/forms-schema/elements/FilesElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/FormElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/FormElement.js +17 -0
- package/tenants/lib/forms-schema/elements/FormElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/FreshdeskDependentFieldElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/FreshdeskDependentFieldElement.js +31 -0
- package/tenants/lib/forms-schema/elements/FreshdeskDependentFieldElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/GeoscapeElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/GeoscapeElement.js +23 -0
- package/tenants/lib/forms-schema/elements/GeoscapeElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/HTMLElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/HTMLElement.js +22 -0
- package/tenants/lib/forms-schema/elements/HTMLElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/HeadingElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/HeadingElement.js +18 -0
- package/tenants/lib/forms-schema/elements/HeadingElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/ImageElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/ImageElement.js +18 -0
- package/tenants/lib/forms-schema/elements/ImageElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/InfoPageElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/InfoPageElement.js +17 -0
- package/tenants/lib/forms-schema/elements/InfoPageElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/LocationElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/LocationElement.js +21 -0
- package/tenants/lib/forms-schema/elements/LocationElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/NumberElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/NumberElement.js +95 -0
- package/tenants/lib/forms-schema/elements/NumberElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/PhoneElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/PhoneElement.js +24 -0
- package/tenants/lib/forms-schema/elements/PhoneElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/PointElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/PointElement.js +24 -0
- package/tenants/lib/forms-schema/elements/PointElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/RadioElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/RadioElement.js +24 -0
- package/tenants/lib/forms-schema/elements/RadioElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/RepeatableSetElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/RepeatableSetElement.js +44 -0
- package/tenants/lib/forms-schema/elements/RepeatableSetElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/SectionElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/SectionElement.js +34 -0
- package/tenants/lib/forms-schema/elements/SectionElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/SelectElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/SelectElement.js +34 -0
- package/tenants/lib/forms-schema/elements/SelectElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/SummaryElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/SummaryElement.js +22 -0
- package/tenants/lib/forms-schema/elements/SummaryElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/TextElement.d.ts +5 -0
- package/tenants/lib/forms-schema/elements/TextElement.js +45 -0
- package/tenants/lib/forms-schema/elements/TextElement.js.map +1 -0
- package/tenants/lib/forms-schema/elements/TimeElement.d.ts +4 -0
- package/tenants/lib/forms-schema/elements/TimeElement.js +23 -0
- package/tenants/lib/forms-schema/elements/TimeElement.js.map +1 -0
- package/tenants/lib/forms-schema/index.d.ts +15 -0
- package/tenants/lib/forms-schema/index.js +441 -0
- package/tenants/lib/forms-schema/index.js.map +1 -0
- package/tenants/lib/forms-schema/property-schemas.d.ts +53 -0
- package/tenants/lib/forms-schema/property-schemas.js +239 -0
- package/tenants/lib/forms-schema/property-schemas.js.map +1 -0
- package/tenants/lib/forms-validation/common.d.ts +5 -0
- package/tenants/lib/forms-validation/common.js +50 -0
- package/tenants/lib/forms-validation/common.js.map +1 -0
- package/tenants/lib/forms-validation/index.d.ts +8 -0
- package/tenants/lib/forms-validation/index.js +165 -0
- package/tenants/lib/forms-validation/index.js.map +1 -0
- package/tenants/lib/forms-validation/validate-form-events.d.ts +16 -0
- package/tenants/lib/forms-validation/validate-form-events.js +164 -0
- package/tenants/lib/forms-validation/validate-form-events.js.map +1 -0
- package/tenants/lib/generate-form-element.d.ts +2 -0
- package/tenants/lib/generate-form-element.js +49 -0
- package/tenants/lib/generate-form-element.js.map +1 -0
- package/tenants/lib/generate-form-url.d.ts +9 -0
- package/tenants/lib/generate-form-url.js +32 -0
- package/tenants/lib/generate-form-url.js.map +1 -0
- package/tenants/lib/generate-jwt.d.ts +1 -0
- package/tenants/lib/generate-jwt.js +15 -0
- package/tenants/lib/generate-jwt.js.map +1 -0
- package/tenants/lib/generate-page-element.d.ts +2 -0
- package/tenants/lib/generate-page-element.js +32 -0
- package/tenants/lib/generate-page-element.js.map +1 -0
- package/tenants/lib/generate-tenant.d.ts +2 -0
- package/tenants/lib/generate-tenant.js +13 -0
- package/tenants/lib/generate-tenant.js.map +1 -0
- package/tenants/lib/one-blink-api.d.ts +37 -0
- package/tenants/lib/one-blink-api.js +122 -0
- package/tenants/lib/one-blink-api.js.map +1 -0
- package/tenants/lib/package.d.ts +2 -0
- package/tenants/lib/package.js +6 -0
- package/tenants/lib/package.js.map +1 -0
- package/tenants/lib/pre-fill-data.d.ts +2 -0
- package/tenants/lib/pre-fill-data.js +29 -0
- package/tenants/lib/pre-fill-data.js.map +1 -0
- package/tenants/lib/retrieve-submission-data.d.ts +2 -0
- package/tenants/lib/retrieve-submission-data.js +26 -0
- package/tenants/lib/retrieve-submission-data.js.map +1 -0
- package/tenants/lib/tenant-configuration.d.ts +3 -0
- package/tenants/lib/tenant-configuration.js +22 -0
- package/tenants/lib/tenant-configuration.js.map +1 -0
- package/tenants/lib/upload-asset.d.ts +4 -0
- package/tenants/lib/upload-asset.js +30 -0
- package/tenants/lib/upload-asset.js.map +1 -0
- package/tenants/lib/user-token-helpers.d.ts +9 -0
- package/tenants/lib/user-token-helpers.js +34 -0
- package/tenants/lib/user-token-helpers.js.map +1 -0
- package/tenants/oneblink.d.ts +1 -0
- package/tenants/oneblink.js +26 -0
- package/tenants/oneblink.js.map +1 -0
- package/tenants/types.d.ts +304 -0
- package/tenants/types.js +18 -0
- package/tenants/types.js.map +1 -0
- package/changelog.md +0 -201
- package/classes/Forms.js +0 -244
- package/classes/FormsApps.js +0 -98
- package/classes/Jobs.js +0 -133
- package/classes/Keys.js +0 -23
- package/classes/Organisations.js +0 -25
- package/classes/TeamMembers.js +0 -34
- package/flow-typed/npm/axios_v0.18.x.js +0 -165
- package/flow-typed/npm/jest_v24.x.x.js +0 -1186
- package/flow-typed/types.js +0 -301
- package/index.js +0 -18
- package/lib/forms-schema.js +0 -859
- package/lib/forms-validation.js +0 -33
- package/lib/generate-form-element.js +0 -75
- package/lib/generate-form-url.js +0 -29
- package/lib/generate-jwt.js +0 -18
- package/lib/one-blink-api-error-handler.js +0 -31
- package/lib/one-blink-api.js +0 -107
- package/lib/pre-fill-data.js +0 -33
- package/lib/retrieve-submission-data.js +0 -29
- package/lib/tenant.js +0 -23
package/lib/forms-validation.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
const { elementSchema, formSchema } = require('./forms-schema.js')
|
|
5
|
-
|
|
6
|
-
const Joi = require('joi')
|
|
7
|
-
|
|
8
|
-
function validateJoiSchema /* :: <T> */ (
|
|
9
|
-
data /* : mixed */,
|
|
10
|
-
schema /* : Object */,
|
|
11
|
-
options /* : ?Object */
|
|
12
|
-
) /* : T */ {
|
|
13
|
-
const result = Joi.validate(data, schema, options)
|
|
14
|
-
if (result.error) {
|
|
15
|
-
throw result.error
|
|
16
|
-
}
|
|
17
|
-
return result.value
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function validateWithFormSchema (form /* : mixed */) /* : Form */ {
|
|
21
|
-
const validatedForm = validateJoiSchema(form, formSchema, { stripUnknown: true })
|
|
22
|
-
return validatedForm
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function validateWithElementSchema (element /* : mixed */) /* : FormElement */ {
|
|
26
|
-
const validatedElement = validateJoiSchema(element, elementSchema, { stripUnknown: true })
|
|
27
|
-
return validatedElement
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
module.exports = {
|
|
31
|
-
validateWithFormSchema,
|
|
32
|
-
validateWithElementSchema
|
|
33
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
const uuid = require('uuid/v4')
|
|
5
|
-
|
|
6
|
-
const { validateWithElementSchema } = require('../lib/forms-validation.js')
|
|
7
|
-
|
|
8
|
-
function generateFormElement (
|
|
9
|
-
formElementGenerationData /* : mixed */
|
|
10
|
-
) /* : FormElement */ {
|
|
11
|
-
if (!formElementGenerationData) {
|
|
12
|
-
throw new Error('no form element generation data provided, please provide this data to generate a form element')
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// initialise empty element object and spread data passed by user
|
|
16
|
-
const formElement /* : Object */ = { ...formElementGenerationData }
|
|
17
|
-
|
|
18
|
-
// element property: id
|
|
19
|
-
formElement.id = uuid()
|
|
20
|
-
|
|
21
|
-
// element property: options
|
|
22
|
-
if (Array.isArray(formElementGenerationData.options)) {
|
|
23
|
-
const options = formElementGenerationData.options.map((o, index) => {
|
|
24
|
-
const option = o || {}
|
|
25
|
-
return {
|
|
26
|
-
...option,
|
|
27
|
-
id: uuid(),
|
|
28
|
-
label: option.label || option.value || `Option ${index + 1}`,
|
|
29
|
-
value: option.value || index.toString()
|
|
30
|
-
}
|
|
31
|
-
})
|
|
32
|
-
formElement.options = options
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// element property: type || default to: 'text'
|
|
36
|
-
if (typeof formElementGenerationData.type === 'string') {
|
|
37
|
-
formElement.type = formElementGenerationData.type
|
|
38
|
-
} else {
|
|
39
|
-
formElement.type = 'text'
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// element property: required || default to: false
|
|
43
|
-
if (typeof formElementGenerationData.required === 'boolean') {
|
|
44
|
-
formElement.required = formElementGenerationData.required
|
|
45
|
-
} else {
|
|
46
|
-
formElement.required = false
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// element property: label || default to: {type}
|
|
50
|
-
if (typeof formElementGenerationData.label === 'string') {
|
|
51
|
-
formElement.label = formElementGenerationData.label
|
|
52
|
-
} else {
|
|
53
|
-
formElement.label = formElement.type
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// element property: name || default to: {label(without spaces)}
|
|
57
|
-
if (typeof formElementGenerationData.name !== 'string') {
|
|
58
|
-
formElement.name = formElement.label.replace(/\s+/g, '_')
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// element property: conditionallyShow || default: false
|
|
62
|
-
if (typeof formElementGenerationData.conditionallyShow === 'boolean') {
|
|
63
|
-
formElement.conditionallyShow = formElementGenerationData.conditionallyShow
|
|
64
|
-
} else {
|
|
65
|
-
formElement.conditionallyShow = false
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// element property: readOnly || default: false
|
|
69
|
-
formElement.readOnly = formElementGenerationData.readOnly || false
|
|
70
|
-
|
|
71
|
-
const validatedFormElement = validateWithElementSchema(formElement)
|
|
72
|
-
return validatedFormElement
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
module.exports = generateFormElement
|
package/lib/generate-form-url.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
const querystring = require('querystring')
|
|
5
|
-
|
|
6
|
-
function generateFormUrl (
|
|
7
|
-
endpoint /* : string */,
|
|
8
|
-
formId /* : number */,
|
|
9
|
-
token /* : string */,
|
|
10
|
-
externalId /* : mixed */,
|
|
11
|
-
preFillFormDataId /* : ?string */
|
|
12
|
-
) {
|
|
13
|
-
if (!formId) {
|
|
14
|
-
throw new Error('no form id provided, please provide a form id to generate a url')
|
|
15
|
-
}
|
|
16
|
-
let searchParams = {
|
|
17
|
-
access_key: token
|
|
18
|
-
}
|
|
19
|
-
if (externalId) {
|
|
20
|
-
searchParams = Object.assign({}, searchParams, { externalId })
|
|
21
|
-
}
|
|
22
|
-
if (preFillFormDataId) {
|
|
23
|
-
searchParams = Object.assign({}, searchParams, { preFillFormDataId })
|
|
24
|
-
}
|
|
25
|
-
const search = querystring.stringify(searchParams)
|
|
26
|
-
return `${endpoint}/${formId}?${search}`
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
module.exports = generateFormUrl
|
package/lib/generate-jwt.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
const jwt = require('jsonwebtoken')
|
|
5
|
-
|
|
6
|
-
function generateJWT (
|
|
7
|
-
accessKey /* : string */,
|
|
8
|
-
secretKey /* : string */,
|
|
9
|
-
expiresInSeconds /* : number */
|
|
10
|
-
) {
|
|
11
|
-
return jwt.sign({
|
|
12
|
-
iss: accessKey
|
|
13
|
-
}, secretKey, {
|
|
14
|
-
expiresIn: expiresInSeconds
|
|
15
|
-
})
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
module.exports = generateJWT
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
/* ::
|
|
5
|
-
import type {
|
|
6
|
-
$AxiosError
|
|
7
|
-
} from 'axios'
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
function oneBlinkAPIErrorHandler(
|
|
11
|
-
error /* : $AxiosError<{
|
|
12
|
-
error: string,
|
|
13
|
-
message: string,
|
|
14
|
-
statusCode: number
|
|
15
|
-
}> */
|
|
16
|
-
) {
|
|
17
|
-
if (error.response) {
|
|
18
|
-
// The request was made and the server responded with a status code
|
|
19
|
-
// that falls out of the range of 2xx
|
|
20
|
-
error.response.data = error.response.data || {
|
|
21
|
-
message: 'OneBlink API Internal Server Error'
|
|
22
|
-
}
|
|
23
|
-
const err = new Error(error.response.data.message)
|
|
24
|
-
err.name = 'OneBlinkAPIError'
|
|
25
|
-
throw err
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
throw error
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
module.exports = oneBlinkAPIErrorHandler
|
package/lib/one-blink-api.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
/* ::
|
|
5
|
-
import type {
|
|
6
|
-
Axios,
|
|
7
|
-
$AxiosError
|
|
8
|
-
} from 'axios'
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
const querystring = require('querystring')
|
|
12
|
-
|
|
13
|
-
const axios = require('axios')
|
|
14
|
-
|
|
15
|
-
const pkg = require('../package.json')
|
|
16
|
-
const generateJWT = require('./generate-jwt.js')
|
|
17
|
-
const errorHandler = require('./one-blink-api-error-handler.js')
|
|
18
|
-
|
|
19
|
-
module.exports = class OneBlinkAPI {
|
|
20
|
-
/* ::
|
|
21
|
-
oneBlinkAPI: Axios
|
|
22
|
-
accessKey: string
|
|
23
|
-
secretKey: string
|
|
24
|
-
jwtExpiry: number
|
|
25
|
-
*/
|
|
26
|
-
constructor(
|
|
27
|
-
apiOrigin /* : mixed */,
|
|
28
|
-
accessKey /* : mixed */,
|
|
29
|
-
secretKey /* : mixed */
|
|
30
|
-
) {
|
|
31
|
-
if (!accessKey || typeof accessKey !== 'string') {
|
|
32
|
-
throw new TypeError('Must supply Access Key as a string')
|
|
33
|
-
}
|
|
34
|
-
if (!secretKey || typeof secretKey !== 'string') {
|
|
35
|
-
throw new TypeError('Must supply Secret Key as a string')
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
this.jwtExpiry = 300
|
|
39
|
-
this.accessKey = accessKey
|
|
40
|
-
this.secretKey = secretKey
|
|
41
|
-
this.oneBlinkAPI = axios.create({
|
|
42
|
-
baseURL:
|
|
43
|
-
typeof apiOrigin === 'string' ? apiOrigin : 'https://auth-api.blinkm.io'
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
const userAgentHeader = `Node.js ${pkg.name} / ${pkg.version}`
|
|
47
|
-
|
|
48
|
-
this.oneBlinkAPI.defaults.headers.common['User-Agent'] = userAgentHeader
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
get defaultRequestConfig() {
|
|
52
|
-
return {
|
|
53
|
-
headers: {
|
|
54
|
-
Authorization: `Bearer ${generateJWT(
|
|
55
|
-
this.accessKey,
|
|
56
|
-
this.secretKey,
|
|
57
|
-
this.jwtExpiry
|
|
58
|
-
)}`
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
getRequest /* :: <TOut> */(path /* : string */) /* : Promise<TOut> */ {
|
|
64
|
-
// 5 minute expiry
|
|
65
|
-
return this.oneBlinkAPI
|
|
66
|
-
.get(path, this.defaultRequestConfig)
|
|
67
|
-
.then(response => response.data)
|
|
68
|
-
.catch(errorHandler)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
searchRequest /*:: <T, TOut> */(
|
|
72
|
-
path /* : string */,
|
|
73
|
-
searchParams /* : ?T */
|
|
74
|
-
) /* : Promise<TOut> */ {
|
|
75
|
-
const search = querystring.stringify(searchParams || {})
|
|
76
|
-
|
|
77
|
-
return this.getRequest(`${path}?${search}`)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
putRequest(path /* : string */, body /* : ?mixed */) /* Promise<Object> */ {
|
|
81
|
-
// 5 minute expiry
|
|
82
|
-
return this.oneBlinkAPI
|
|
83
|
-
.put(path, body, this.defaultRequestConfig)
|
|
84
|
-
.then(response => response.data)
|
|
85
|
-
.catch(errorHandler)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
postRequest /*:: <T, TOut> */(
|
|
89
|
-
path /* : string */,
|
|
90
|
-
body /* : ?T */
|
|
91
|
-
) /* : Promise<TOut> */ {
|
|
92
|
-
// 5 minute expiry
|
|
93
|
-
return this.oneBlinkAPI
|
|
94
|
-
.post(path, body, this.defaultRequestConfig)
|
|
95
|
-
.then(response => response.data)
|
|
96
|
-
.catch(errorHandler)
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
async deleteRequest(path /* : string */) /* : Promise<void> */ {
|
|
100
|
-
// 5 minute expiry
|
|
101
|
-
try {
|
|
102
|
-
await this.oneBlinkAPI.delete(path, this.defaultRequestConfig)
|
|
103
|
-
} catch (error) {
|
|
104
|
-
errorHandler(error)
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
package/lib/pre-fill-data.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
const AWS = require('aws-sdk')
|
|
5
|
-
|
|
6
|
-
function setPreFillData (
|
|
7
|
-
preFillMeta /* : PreFillMeta */,
|
|
8
|
-
data /* : mixed */
|
|
9
|
-
)/* : Promise<mixed> */ {
|
|
10
|
-
const s3 = new AWS.S3({
|
|
11
|
-
region: preFillMeta.s3.region,
|
|
12
|
-
accessKeyId: preFillMeta.credentials.AccessKeyId,
|
|
13
|
-
secretAccessKey: preFillMeta.credentials.SecretAccessKey,
|
|
14
|
-
sessionToken: preFillMeta.credentials.SessionToken
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
const objectMeta = {
|
|
18
|
-
Bucket: preFillMeta.s3.bucket,
|
|
19
|
-
Key: preFillMeta.s3.key,
|
|
20
|
-
Body: Buffer.from(JSON.stringify(data) || '{}', 'UTF-8'),
|
|
21
|
-
Expires: new Date(new Date().setFullYear(new Date().getFullYear() + 1)), // Max 1 year
|
|
22
|
-
CacheControl: 'max-age=31536000' // Max 1 year(365 days)
|
|
23
|
-
}
|
|
24
|
-
const uploadOptions = {
|
|
25
|
-
partSize: 5 * 1024 * 1024,
|
|
26
|
-
queueSize: 1
|
|
27
|
-
}
|
|
28
|
-
return s3.upload(objectMeta, uploadOptions)
|
|
29
|
-
.promise()
|
|
30
|
-
.then(() => ({}))
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
module.exports = setPreFillData
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
const AWS = require('aws-sdk')
|
|
5
|
-
|
|
6
|
-
function getSubmissionData (
|
|
7
|
-
retrievalData /* : FormRetrievalData */
|
|
8
|
-
) /* : Promise<S3SubmissionData> */ {
|
|
9
|
-
const s3 = new AWS.S3({
|
|
10
|
-
region: retrievalData.s3.region,
|
|
11
|
-
accessKeyId: retrievalData.credentials.AccessKeyId,
|
|
12
|
-
secretAccessKey: retrievalData.credentials.SecretAccessKey,
|
|
13
|
-
sessionToken: retrievalData.credentials.SessionToken
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
const params = {
|
|
17
|
-
Bucket: retrievalData.s3.bucket,
|
|
18
|
-
Key: retrievalData.s3.key
|
|
19
|
-
}
|
|
20
|
-
return s3.getObject(params).promise()
|
|
21
|
-
.then(s3Data => {
|
|
22
|
-
const formData = s3Data.Body.toString()
|
|
23
|
-
return JSON.parse(formData)
|
|
24
|
-
})
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
module.exports = {
|
|
28
|
-
getSubmissionData
|
|
29
|
-
}
|
package/lib/tenant.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
'use strict'
|
|
3
|
-
|
|
4
|
-
const apis = {
|
|
5
|
-
ONEBLINK: 'https://auth-api.blinkm.io',
|
|
6
|
-
CIVICPLUS: 'https://auth-api.transform.civicplus.com'
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
module.exports = (
|
|
10
|
-
tenant /* : string */ = 'ONEBLINK',
|
|
11
|
-
apiOrigin /* : mixed */
|
|
12
|
-
) => {
|
|
13
|
-
if (!!tenant && !Object.keys(apis).includes(tenant.toUpperCase())) {
|
|
14
|
-
throw new TypeError(
|
|
15
|
-
` Must be passed a valid tenant. Valid options are ${Object.keys(
|
|
16
|
-
apis
|
|
17
|
-
).toString()}`
|
|
18
|
-
)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (apiOrigin) return apiOrigin
|
|
22
|
-
return apis[tenant.toUpperCase()]
|
|
23
|
-
}
|