Skip to content

Commit

Permalink
Add ESLint (#40)
Browse files Browse the repository at this point in the history
* Add ESLint

Fix all ESLint errors
Add job to run linter against pull requests
  • Loading branch information
mapitman committed Apr 14, 2022
1 parent 3f27ada commit 2d567f6
Show file tree
Hide file tree
Showing 26 changed files with 1,119 additions and 1,259 deletions.
5 changes: 5 additions & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ rules:
indent:
- error
- 4
- SwitchCase: 1

linebreak-style:
- error
- unix
Expand All @@ -18,3 +20,6 @@ rules:
semi:
- error
- always
arrow-spacing:
- error

15 changes: 15 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: ESLint

on: ["pull_request"]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "16"
- run: npm install
- run: npm run lint
2 changes: 1 addition & 1 deletion lib/customrequest.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class CustomRequest extends GettyApiRequest {
case "delete":
return webHelper.deleteQuery(path);
default:
throw new SdkException("No appropriate HTTP method found for this request.");
throw new SdkException("No appropriate HTTP method found for this request.");
}

}
Expand Down
3 changes: 1 addition & 2 deletions lib/searchimages.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"use strict";

var querystring = require("querystring");
var SdkException = require("./sdkexception.js");
var WebHelper = require("./webhelper.js");
var SearchRequest = require("./baseclasses/searchrequest.js");

Expand Down Expand Up @@ -36,7 +35,7 @@ class SearchImages extends SearchRequest {

}

execute(next) {
execute() {
var params = {};
super.addParameter(params, "age_of_people", this.ageOfPeople);
super.addParameter(params, "artists", this.artists);
Expand Down
51 changes: 25 additions & 26 deletions lib/searchimagescreative.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"use strict";

var querystring = require("querystring");
var SdkException = require("./sdkexception.js");
var WebHelper = require("./webhelper.js");
var SearchRequest = require("./baseclasses/searchrequest.js");

Expand Down Expand Up @@ -35,32 +34,32 @@ class SearchImagesCreative extends SearchRequest {
this.headers = {};
}

execute(next) {
execute() {
var params = {};
super.addParameter(params, "age_of_people", this.ageOfPeople);
super.addParameter(params, "artists", this.artists);
super.addParameter(params, "collection_codes", this.collectionCodes);
super.addParameter(params, "collections_filter_type", this.collectionsFilterType);
super.addParameter(params, "color", this.color);
super.addParameter(params, "compositions", this.compositions);
super.addParameter(params, "embed_content_only", this.embedContentOnly);
super.addParameter(params, "ethnicity", this.ethnicities);
super.addParameter(params, "exclude_editorial_use_only", this.excludeEditorialUseOnly)
super.addParameter(params, "exclude_nudity", this.excludeNudity);
super.addParameter(params, "fields", this.fields);
super.addParameter(params, "file_types", this.fileTypes);
super.addParameter(params, "graphical_styles", this.graphicalStyles);
super.addParameter(params, "keyword_ids", this.keywordIds);
super.addParameter(params, "minimum_size", this.minimumSize);
super.addParameter(params, "number_of_people", this.numberOfPeople);
super.addParameter(params, "orientations", this.orientations);
super.addParameter(params, "page", this.page);
super.addParameter(params, "page_size", this.pageSize);
super.addParameter(params, "phrase", this.phrase);
super.addParameter(params, "prestige_content_only", this.prestigeContentOnly);
super.addParameter(params, "product_types", this.productTypes);
super.addParameter(params, "safe_search", this.safeSearch);
super.addParameter(params, "sort_order", this.sortOrder);
super.addParameter(params, "age_of_people", this.ageOfPeople);
super.addParameter(params, "artists", this.artists);
super.addParameter(params, "collection_codes", this.collectionCodes);
super.addParameter(params, "collections_filter_type", this.collectionsFilterType);
super.addParameter(params, "color", this.color);
super.addParameter(params, "compositions", this.compositions);
super.addParameter(params, "embed_content_only", this.embedContentOnly);
super.addParameter(params, "ethnicity", this.ethnicities);
super.addParameter(params, "exclude_editorial_use_only", this.excludeEditorialUseOnly);
super.addParameter(params, "exclude_nudity", this.excludeNudity);
super.addParameter(params, "fields", this.fields);
super.addParameter(params, "file_types", this.fileTypes);
super.addParameter(params, "graphical_styles", this.graphicalStyles);
super.addParameter(params, "keyword_ids", this.keywordIds);
super.addParameter(params, "minimum_size", this.minimumSize);
super.addParameter(params, "number_of_people", this.numberOfPeople);
super.addParameter(params, "orientations", this.orientations);
super.addParameter(params, "page", this.page);
super.addParameter(params, "page_size", this.pageSize);
super.addParameter(params, "phrase", this.phrase);
super.addParameter(params, "prestige_content_only", this.prestigeContentOnly);
super.addParameter(params, "product_types", this.productTypes);
super.addParameter(params, "safe_search", this.safeSearch);
super.addParameter(params, "sort_order", this.sortOrder);

var path = "/v3/search/images/creative";
var query = querystring.stringify(params);
Expand Down
3 changes: 1 addition & 2 deletions lib/searchimageseditorial.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
"use strict";

var querystring = require("querystring");
var SdkException = require("./sdkexception.js");
var WebHelper = require("./webhelper.js");
var SearchRequest = require("./baseclasses/searchrequest.js");

Expand Down Expand Up @@ -38,7 +37,7 @@ class SearchImages extends SearchRequest {
this.headers = {};
}

execute(next) {
execute() {
var params = {};
super.addParameter(params, "age_of_people", this.ageOfPeople);
super.addParameter(params, "artists", this.artists);
Expand Down
3 changes: 1 addition & 2 deletions lib/searchvideos.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
"use strict";
var querystring = require("querystring");
var SdkException = require("./sdkexception.js");
var WebHelper = require("./webhelper.js");
var SearchRequest = require("./baseclasses/searchrequest.js");

Expand All @@ -27,7 +26,7 @@ class SearchVideos extends SearchRequest {

}

execute(next) {
execute() {
var params = {};
super.addParameter(params, "age_of_people", this.ageOfPeople);
super.addParameter(params, "collection_codes", this.collectionCodes);
Expand Down
3 changes: 1 addition & 2 deletions lib/searchvideoscreative.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
"use strict";
var querystring = require("querystring");
var SdkException = require("./sdkexception.js");
var WebHelper = require("./webhelper.js");
var SearchRequest = require("./baseclasses/searchrequest.js");

Expand Down Expand Up @@ -31,7 +30,7 @@ class SearchVideosCreative extends SearchRequest {
super.addParameter(params, "age_of_people", this.ageOfPeople);
super.addParameter(params, "collection_codes", this.collectionCodes);
super.addParameter(params, "collections_filter_type", this.collectionsFilterType);
super.addParameter(params, "exclude_editorial_use_only", this.excludeEditorialUseOnly)
super.addParameter(params, "exclude_editorial_use_only", this.excludeEditorialUseOnly);
super.addParameter(params, "exclude_nudity", this.excludeNudity);
super.addParameter(params, "fields", this.fields);
super.addParameter(params, "format_available", this.formatAvailable);
Expand Down
3 changes: 1 addition & 2 deletions lib/searchvideoseditorial.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
"use strict";
var querystring = require("querystring");
var SdkException = require("./sdkexception.js");
var WebHelper = require("./webhelper.js");
var SearchRequest = require("./baseclasses/searchrequest.js");

Expand All @@ -26,7 +25,7 @@ class SearchVideosEditorial extends SearchRequest {
this.headers = {};
}

execute(next) {
execute() {
var params = {};
super.addParameter(params, "age_of_people", this.ageOfPeople);
super.addParameter(params, "collection_codes", this.collectionCodes);
Expand Down
2 changes: 1 addition & 1 deletion lib/videos.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class Videos extends GettyApiRequest {
return this;
}

execute(next) {
execute() {
var path = "/v3/videos";
var params = null;

Expand Down
7 changes: 4 additions & 3 deletions lib/webhelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ function WebHelper(credentials, hostName) {
this.get = async function (path,headers) {
var headersToSend = Object.assign({
"Api-Key": credentials.apiKey,
"Accept": "application/json"},headers)
"Accept": "application/json"},headers);

var options = {
hostname: hostName,
Expand Down Expand Up @@ -149,13 +149,14 @@ function WebHelper(credentials, hostName) {
});
});
if (postData) {
request.write(postData)
request.write(postData);
}
request.end();
})
});
}

function addUserAgentString(options) {
// eslint-disable-next-line no-undef
options.headers["User-Agent"] = "GettyImagesApiSdk/" + pjson.version + " (" + os.type() + " " + os.release() + "; Node.js " + process.version + ")";
}
}
61 changes: 29 additions & 32 deletions tests/authtests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,44 @@ const api = require("../gettyimages-api");
const nock = require("nock");
const test = require("ava");

test.beforeEach(t=>{
test.beforeEach(() => {
nock("https://api.gettyimages.com")
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&grant_type=client_credentials")
.reply(200, {
access_token: "client_credentials_access_token",
token_type: "Bearer",
expires_in: "1800"
})
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&grant_type=password&username=username&password=password")
.reply(200, {
access_token: "resource_owner_access_token",
token_type: "Bearer",
expires_in: "1800",
refresh_token: "refreshtoken"
})
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&refresh_token=refreshtoken&grant_type=refresh_token")
.reply(200, {
access_token: "accesstoken",
token_type: "Bearer",
expires_in: "1800"
});
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&grant_type=client_credentials")
.reply(200, {
access_token: "client_credentials_access_token",
token_type: "Bearer",
expires_in: "1800"
})
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&grant_type=password&username=username&password=password")
.reply(200, {
access_token: "resource_owner_access_token",
token_type: "Bearer",
expires_in: "1800",
refresh_token: "refreshtoken"
})
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&refresh_token=refreshtoken&grant_type=refresh_token")
.reply(200, {
access_token: "accesstoken",
token_type: "Bearer",
expires_in: "1800"
});
});

test("Client Credentials should return an access token when an api key and secret are provided", t => {
test("Client Credentials should return an access token when an api key and secret are provided", async t => {
var client = new api({ apiKey: "apikey", apiSecret: "apisecret" }, null);
return Promise.resolve(client.getAccessToken()).then(res => {
t.is(res.access_token, "client_credentials_access_token");
});
const res = await client.getAccessToken();
t.is(res.access_token, "client_credentials_access_token");
});

test("Resource Owner Grant should return an access token when an api key, secret, username, and password are provided", t => {
test("Resource Owner Grant should return an access token when an api key, secret, username, and password are provided", async t => {
var client = new api({ apiKey: "apikey", apiSecret: "apisecret", username: "username", password: "password" }, null);
return Promise.resolve(client.getAccessToken()).then(res => {
t.is(res.access_token, "resource_owner_access_token");
});
const res = await client.getAccessToken();
t.is(res.access_token, "resource_owner_access_token");
});

test("Refresh Token should return an access token when an api key, secret, and refresh token are provided", t => {
test("Refresh Token should return an access token when an api key, secret, and refresh token are provided", async t => {
var client = new api({ apiKey: "apikey", apiSecret: "apisecret", refresh_token:"refreshtoken" }, null);
return Promise.resolve(client.getAccessToken()).then(res => {
t.is(res.access_token, "accesstoken");
});
const res = await client.getAccessToken();
t.is(res.access_token, "accesstoken");
});

27 changes: 13 additions & 14 deletions tests/collectionstests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,20 @@ const api = require("../gettyimages-api");
const nock = require("nock");
const test = require("ava");

test.before(t=>{
test.before(() => {
nock("https://api.gettyimages.com")
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&grant_type=client_credentials")
.reply(200, {
access_token: "client_credentials_access_token",
token_type: "Bearer",
expires_in: "1800"
})
.get("/v3/collections")
.reply(200, {response : "response"});
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&grant_type=client_credentials")
.reply(200, {
access_token: "client_credentials_access_token",
token_type: "Bearer",
expires_in: "1800"
})
.get("/v3/collections")
.reply(200, {response : "response"});
});

test("Collections: When collections end point is called, the correct path is built", t => {
test("Collections: When collections end point is called, the correct path is built", async t => {
var client = new api({apiKey: "apikey", apiSecret: "apisecret"}, null);
return Promise.resolve(client.collections().execute()).then(res => {
t.is(res.response, "response");
});
})
const res = await client.collections().execute();
t.is(res.response, "response");
});
25 changes: 12 additions & 13 deletions tests/countriestests.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,21 @@ const api = require("../gettyimages-api");
const nock = require("nock");
const test = require("ava");

test.before(t=>{
test.before(() => {
nock("https://api.gettyimages.com")
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&grant_type=client_credentials")
.reply(200, {
access_token: "client_credentials_access_token",
token_type: "Bearer",
expires_in: "1800"
})
.get("/v3/countries")
.reply(200, {response : "response"});
.post("/oauth2/token", "client_id=apikey&client_secret=apisecret&grant_type=client_credentials")
.reply(200, {
access_token: "client_credentials_access_token",
token_type: "Bearer",
expires_in: "1800"
})
.get("/v3/countries")
.reply(200, {response : "response"});
});

test("Countries: When countries end point is called, the correct path is built", t => {
test("Countries: When countries end point is called, the correct path is built", async t => {
var client = new api({ apiKey: "apikey", apiSecret: "apisecret" }, null);
return Promise.resolve(client.countries().execute()).then(res => {
t.is(res.response, "response");
});
const res = await client.countries().execute();
t.is(res.response, "response");
});

Loading

0 comments on commit 2d567f6

Please sign in to comment.