Skip to content

Commit

Permalink
style(*): format files with prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
spirosikmd committed Oct 5, 2017
1 parent ee282ff commit 16ef5f6
Show file tree
Hide file tree
Showing 22 changed files with 799 additions and 170 deletions.
7 changes: 4 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"karma-coveralls": "^1.1.2",
"karma-jasmine": "^1.0.2",
"lint-staged": "^4.2.3",
"prettier": "^1.7.4",
"prettier-eslint-cli": "^4.4.0",
"semantic-release": "^6.3.2",
"vinyl-source-stream": "^1.1.0",
"wallabify": "0.0.14",
Expand All @@ -43,7 +43,8 @@
"posttest": "npm run lint",
"semantic-release": "semantic-release pre && npm publish && semantic-release post",
"commit": "git-cz",
"precommit": "lint-staged"
"precommit": "lint-staged",
"format": "prettier-eslint --write --single-quote"
},
"repository": {
"type": "git",
Expand All @@ -62,7 +63,7 @@
},
"lint-staged": {
"*.js": [
"prettier --write",
"format",
"git add"
]
}
Expand Down
17 changes: 10 additions & 7 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,17 @@ const AppsProduct = require('./resources/appsProduct');
* Needs to be instantiated with access and secret keys.
*/
class Usabilla {

constructor(accessKey, secretKey, options = {}) {
this.config = Object.assign({}, {
protocol: 'https',
host: 'data.usabilla.com',
port: null,
iterator: true
}, options);
this.config = Object.assign(
{},
{
protocol: 'https',
host: 'data.usabilla.com',
port: null,
iterator: true
},
options
);

const signatureFactory = new SignatureFactory(accessKey, secretKey);

Expand Down
1 change: 0 additions & 1 deletion src/resources/appsProduct.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const FormsResource = require('./formsResource');
* Apps product endpoints.
*/
class AppsProduct {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/apps`;

Expand Down
1 change: 0 additions & 1 deletion src/resources/buttonFeedbackResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const Resource = require('./resource');
* Websites Buttons feedback resource.
*/
class ButtonFeedbackResource extends Resource {

constructor(base, signatureFactory, config) {
super(`${base}/:id/feedback`, signatureFactory, config);
}
Expand Down
7 changes: 5 additions & 2 deletions src/resources/buttonsResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ const ButtonFeedbackResource = require('./buttonFeedbackResource');
* Websites Buttons resource.
*/
class ButtonsResource extends Resource {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/button`;
super(baseUrl, signatureFactory, config);

this.feedback = new ButtonFeedbackResource(baseUrl, signatureFactory, config);
this.feedback = new ButtonFeedbackResource(
baseUrl,
signatureFactory,
config
);
}
}

Expand Down
7 changes: 5 additions & 2 deletions src/resources/campaignsResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@ const CampaignsStatsResource = require('./campaignsStatsResource');
* Websites Campaigns resource.
*/
class CampaignsResource extends Resource {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/campaign`;
super(baseUrl, signatureFactory, config);

this.results = new CampaignsResultsResource(baseUrl, signatureFactory, config);
this.results = new CampaignsResultsResource(
baseUrl,
signatureFactory,
config
);
this.stats = new CampaignsStatsResource(baseUrl, signatureFactory, config);
}
}
Expand Down
1 change: 0 additions & 1 deletion src/resources/campaignsResultsResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ const Resource = require('./resource');
* This resource provides the responses for a single or all campaigns.
*/
class CampaignsResultsResource extends Resource {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/:id/results`;
super(baseUrl, signatureFactory, config);
Expand Down
1 change: 0 additions & 1 deletion src/resources/campaignsStatsResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ const Resource = require('./resource');
* This resource provides the main statistics from a campaign.
*/
class CampaignsStatsResource extends Resource {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/:id/stats`;
super(baseUrl, signatureFactory, config);
Expand Down
1 change: 0 additions & 1 deletion src/resources/emailProduct.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const WidgetsResource = require('./widgetsResource');
* Email product endpoints.
*/
class EmailProduct {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/email`;

Expand Down
1 change: 0 additions & 1 deletion src/resources/formsFeedbackResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const Resource = require('./resource');
* Apps Forms feedback resource.
*/
class FormsFeedbackResource extends Resource {

constructor(base, signatureFactory, config) {
super(`${base}/:id/feedback`, signatureFactory, config);
}
Expand Down
7 changes: 5 additions & 2 deletions src/resources/formsResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ const FormsFeedbackResource = require('./formsFeedbackResource');
* Apps Forms resource.
*/
class FormsResource extends Resource {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}`;
super(baseUrl, signatureFactory, config);

this.feedback = new FormsFeedbackResource(baseUrl, signatureFactory, config);
this.feedback = new FormsFeedbackResource(
baseUrl,
signatureFactory,
config
);
}
}

Expand Down
1 change: 0 additions & 1 deletion src/resources/inPageFeedbackResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const Resource = require('./resource');
* Websites InPage feedback resource.
*/
class InPageFeedbackResource extends Resource {

constructor(base, signatureFactory, config) {
super(`${base}/:id/feedback`, signatureFactory, config);
}
Expand Down
7 changes: 5 additions & 2 deletions src/resources/inPageResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ const InPageFeedbackResource = require('./inPageFeedbackResource');
* Websites InPage resource.
*/
class InPageResource extends Resource {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/inpage`;
super(baseUrl, signatureFactory, config);

this.feedback = new InPageFeedbackResource(baseUrl, signatureFactory, config);
this.feedback = new InPageFeedbackResource(
baseUrl,
signatureFactory,
config
);
}
}

Expand Down
16 changes: 8 additions & 8 deletions src/resources/resource.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const https = require("https");
const packageJson = require("../../package.json");
const https = require('https');
const packageJson = require('../../package.json');

/**
* Base resource class which takes care of creating the query
Expand All @@ -10,7 +10,7 @@ class Resource {
this.url = url;
this.signatureFactory = signatureFactory;
this.config = config;
this.str = "";
this.str = '';
this.queryParams = {};
}

Expand Down Expand Up @@ -89,22 +89,22 @@ class Resource {
return new Promise((resolve, reject) => {
https
.get(requestOptions, this.handleGetResponse.bind(this, resolve, reject))
.on("error", this.handleOnError.bind(this, reject));
.on('error', this.handleOnError.bind(this, reject));
});
}

handleGetResponse(resolve, reject, response) {
this.str = "";
this.str = '';
this.answer = {};

response.on("data", this.handleOnData.bind(this));
response.on('data', this.handleOnData.bind(this));

response.on("end", this.handleOnEnd.bind(this, resolve, reject));
response.on('end', this.handleOnEnd.bind(this, resolve, reject));
}

static getDefaultHeaders(version) {
return {
"x-ub-api-client": `Usabilla API Node Client/${version}`
'x-ub-api-client': `Usabilla API Node Client/${version}`
};
}
}
Expand Down
1 change: 0 additions & 1 deletion src/resources/websitesProduct.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ const InPageResource = require('./inPageResource');
* Websites product endpoints.
*/
class WebsitesProduct {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/websites`;

Expand Down
1 change: 0 additions & 1 deletion src/resources/widgetFeedbackResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const Resource = require('./resource');
* Email Widget feedback resource.
*/
class WidgetFeedbackResource extends Resource {

constructor(base, signatureFactory, config) {
super(`${base}/:id/feedback`, signatureFactory, config);
}
Expand Down
7 changes: 5 additions & 2 deletions src/resources/widgetsResource.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ const WidgetFeedbackResource = require('./widgetFeedbackResource');
* Email Widget resource.
*/
class WidgetsResource extends Resource {

constructor(base, signatureFactory, config) {
const baseUrl = `${base}/button`;
super(baseUrl, signatureFactory, config);

this.feedback = new WidgetFeedbackResource(baseUrl, signatureFactory, config);
this.feedback = new WidgetFeedbackResource(
baseUrl,
signatureFactory,
config
);
}
}

Expand Down
46 changes: 27 additions & 19 deletions src/signing.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ const crypto = require('crypto');
* - URL + Query parameters
*/
class SignatureFactory {

constructor(accessKey, secretKey) {
this.accessKey = accessKey;
this.secretKey = secretKey;
Expand Down Expand Up @@ -55,10 +54,11 @@ class SignatureFactory {
params.sort();

// map params to URL queryParameters
this.queryParameters = Object.keys(params).map(function(k) {
return [params[k], query.params[params[k]]].join('=')
}).join('&');

this.queryParameters = Object.keys(params)
.map(function(k) {
return [params[k], query.params[params[k]]].join('=');
})
.join('&');
}
}

Expand All @@ -71,7 +71,9 @@ class SignatureFactory {
delete headers.Authorization;

// sort headers alphabetically
return Object.keys(headers).sort().reduce((r, k) => (r[k] = headers[k], r), {});
return Object.keys(headers)
.sort()
.reduce((r, k) => ((r[k] = headers[k]), r), {});
}

/**
Expand All @@ -80,9 +82,11 @@ class SignatureFactory {
*/
getCanonicalHeaders() {
let headers = this.getHeadersToSign();
return Object.keys(headers).map(function(k) {
return [k, headers[k] + '\n'].join(':')
}).join('');
return Object.keys(headers)
.map(function(k) {
return [k, headers[k] + '\n'].join(':');
})
.join('');
}

/**
Expand Down Expand Up @@ -111,7 +115,7 @@ class SignatureFactory {
this.getSignedHeaders(),
SignatureFactory.hash('', 'hex')
].join('\n');
};
}

stringToSign() {
/**
Expand All @@ -126,10 +130,13 @@ class SignatureFactory {
this.dates.shortdate + '/' + 'usbl1_request',
SignatureFactory.hash(this.canonicalString(), 'hex')
].join('\n');
};
}

getSignature() {
const kDate = SignatureFactory.hmac('USBL1' + this.secretKey, this.dates.shortdate);
const kDate = SignatureFactory.hmac(
'USBL1' + this.secretKey,
this.dates.shortdate
);
const kSigning = SignatureFactory.hmac(kDate, 'usbl1_request');

return SignatureFactory.hmac(kSigning, this.stringToSign(), 'hex');
Expand All @@ -140,29 +147,30 @@ class SignatureFactory {
this.headers['x-usbl-date'] = this.dates.longdate;

return [
`USBL1-HMAC-SHA256 Credential=${this.accessKey}/${this.dates.shortdate}/usbl1_request`,
`USBL1-HMAC-SHA256 Credential=${this.accessKey}/${this.dates
.shortdate}/usbl1_request`,
`SignedHeaders=${this.getSignedHeaders()}`,
`Signature=${this.getSignature()}`
].join(', ');
};
}

sign() {
this.headers['Authorization'] = this.authHeader();

return {
headers: this.headers,
url: (this.queryParameters) ? `${this.url}?${this.queryParameters}` : this.url
url: this.queryParameters
? `${this.url}?${this.queryParameters}`
: this.url
};
}

static getDateTime() {
const date = (new Date())
.toJSON()
.replace(/[\-:.]/g, '');
const date = new Date().toJSON().replace(/[\-:.]/g, '');

return {
shortdate: date.substr(0, 8),
longdate: `${date.substr(0, 15)}Z`,
longdate: `${date.substr(0, 15)}Z`
};
}

Expand Down
1 change: 0 additions & 1 deletion test/index.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const EmailProduct = require('../src/resources/emailProduct');
const AppsProduct = require('../src/resources/appsProduct');

describe('Usabilla', function() {

beforeEach(function() {
this.usabilla = new Usabilla('access', 'secret');
});
Expand Down
Loading

0 comments on commit 16ef5f6

Please sign in to comment.