node-pexels
Advanced tools
Comparing version 0.0.3 to 0.0.4
@@ -1,13 +0,16 @@ | ||
import { IPexelsClient, IPexelsResponse } from './interfaces'; | ||
import { IPexelsClient, IPexelsImage, IPexelsResponse } from './interfaces'; | ||
export declare class DefaultPexelsClient implements IPexelsClient { | ||
protected apiKey: string; | ||
static endpoint: string; | ||
static PHOTO_RESOURCE: string; | ||
static SEARCH_RESOURCE: string; | ||
static POPULAR_RESOURCE: string; | ||
constructor(apiKey: string); | ||
photo(id: number): Promise<IPexelsImage>; | ||
search(query: string, perPage?: number, page?: number): Promise<IPexelsResponse>; | ||
popular(perPage?: number, page?: number): Promise<IPexelsResponse>; | ||
private validatePageAndPerPageArguments(perPage?, page?); | ||
private validateSearchMethodParams(query, perPage?, page?); | ||
private makeRequest(resource, queryStringObject); | ||
private validatePhotoMethodParams; | ||
private validatePageAndPerPageArguments; | ||
private validateSearchMethodParams; | ||
private makeRequest; | ||
} |
@@ -8,2 +8,11 @@ "use strict"; | ||
} | ||
DefaultPexelsClient.prototype.photo = function (id) { | ||
try { | ||
this.validatePhotoMethodParams(id); | ||
} | ||
catch (err) { | ||
return Promise.reject(err); | ||
} | ||
return this.makeRequest(DefaultPexelsClient.PHOTO_RESOURCE + "/" + id, {}); | ||
}; | ||
DefaultPexelsClient.prototype.search = function (query, perPage, page) { | ||
@@ -34,2 +43,7 @@ try { | ||
}; | ||
DefaultPexelsClient.prototype.validatePhotoMethodParams = function (id) { | ||
if (typeof id !== 'number') { | ||
throw new Error('Pexels client: invalid id param: ' + id); | ||
} | ||
}; | ||
DefaultPexelsClient.prototype.validatePageAndPerPageArguments = function (perPage, page) { | ||
@@ -64,7 +78,8 @@ var errorFields = []; | ||
}; | ||
DefaultPexelsClient.endpoint = 'https://api.pexels.com/v1/'; | ||
DefaultPexelsClient.PHOTO_RESOURCE = 'photos'; | ||
DefaultPexelsClient.SEARCH_RESOURCE = 'search'; | ||
DefaultPexelsClient.POPULAR_RESOURCE = 'popular'; | ||
return DefaultPexelsClient; | ||
}()); | ||
DefaultPexelsClient.endpoint = 'https://api.pexels.com/v1/'; | ||
DefaultPexelsClient.SEARCH_RESOURCE = 'search'; | ||
DefaultPexelsClient.POPULAR_RESOURCE = 'popular'; | ||
exports.DefaultPexelsClient = DefaultPexelsClient; |
@@ -21,4 +21,5 @@ export declare type TPexelsImageSource = 'original' | 'large' | 'medium' | 'small' | 'portrait' | 'landscape' | 'tiny'; | ||
export interface IPexelsClient { | ||
photo(id: number): Promise<IPexelsImage>; | ||
search(query: string, perPage?: number, page?: number): Promise<IPexelsResponse>; | ||
popular(perPage?: number, page?: number): Promise<IPexelsResponse>; | ||
} |
{ | ||
"name": "node-pexels", | ||
"version": "0.0.3", | ||
"version": "0.0.4", | ||
"description": "Node client for https://www.pexels.com API", | ||
@@ -11,3 +11,3 @@ "main": "build/index.js", | ||
"test": "istanbul cover node_modules/.bin/_mocha build/test/**/main.js", | ||
"lint": "tslint './src/**/*.ts' --type-check --project tsconfig.json", | ||
"lint": "tslint './src/**/*.ts' --project tsconfig.json", | ||
"coverage": "cat ./coverage/lcov.info | ./node_modules/.bin/coveralls" | ||
@@ -32,16 +32,18 @@ }, | ||
"devDependencies": { | ||
"@types/chai": "^3.5.1", | ||
"@types/mocha": "^2.2.41", | ||
"@types/node": "^7.0.13", | ||
"chai": "^3.5.0", | ||
"@types/chai": "^4.1.7", | ||
"@types/chai-json-schema": "^1.4.3", | ||
"@types/got": "^9.2.2", | ||
"@types/mocha": "^5.2.5", | ||
"@types/node": "^10.12.18", | ||
"chai": "^4.2.0", | ||
"chai-json-schema": "^1.4.0", | ||
"coveralls": "^2.13.1", | ||
"coveralls": "^3.0.2", | ||
"istanbul": "^0.4.5", | ||
"mocha": "^3.2.0", | ||
"mocha": "^5.2.0", | ||
"tslint": "^5.1.0", | ||
"typescript": "^2.2.2" | ||
"typescript": "^3.2.2" | ||
}, | ||
"dependencies": { | ||
"got": "^6.7.1" | ||
"got": "^9.5.0" | ||
} | ||
} |
@@ -12,4 +12,11 @@ # node-pexels | ||
## Requirements | ||
Node 8+ | ||
## Changelog | ||
#### v 0.0.4 | ||
Added retrieving single photo method ([#1](https://github.com/dlukanin/node-pexels/pull/1)) | ||
#### v 0.0.3 | ||
@@ -50,9 +57,12 @@ Some fixes in inner logic and interfaces. Added methods args validation. Some fixes in doc. | ||
#### photo(id: number): Promise\<IPexelsImage\>; | ||
Search photo by provided id. | ||
#### popular(perPage?: number, page?: number): Promise\<IPexelsResponse\> | ||
Popular photos request. | ||
#### IPexelsResponse | ||
Response from pexels api. | ||
#### IPexelsResponse, IPexelsImage | ||
Responses from pexels api. | ||
You can find response schema [here](https://github.com/dlukanin/node-pexels/blob/master/src/test/response_schema.ts) | ||
You can find schemas [here](https://github.com/dlukanin/node-pexels/blob/master/src/test/response_schema.ts) | ||
and response example on the [Pexels API](https://www.pexels.com/api) page. | ||
@@ -59,0 +69,0 @@ |
9421
129
73
12
9
+ Added@sindresorhus/is@0.14.0(transitive)
+ Added@szmarczak/http-timer@1.1.2(transitive)
+ Addedcacheable-request@6.1.0(transitive)
+ Addedclone-response@1.0.3(transitive)
+ Addeddecompress-response@3.3.0(transitive)
+ Addeddefer-to-connect@1.1.3(transitive)
+ Addedend-of-stream@1.4.4(transitive)
+ Addedget-stream@4.1.05.2.0(transitive)
+ Addedgot@9.6.0(transitive)
+ Addedhttp-cache-semantics@4.1.1(transitive)
+ Addedjson-buffer@3.0.0(transitive)
+ Addedkeyv@3.1.0(transitive)
+ Addedlowercase-keys@2.0.0(transitive)
+ Addedmimic-response@1.0.1(transitive)
+ Addednormalize-url@4.5.1(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedp-cancelable@1.1.0(transitive)
+ Addedprepend-http@2.0.0(transitive)
+ Addedpump@3.0.2(transitive)
+ Addedresponselike@1.0.2(transitive)
+ Addedto-readable-stream@1.0.0(transitive)
+ Addedurl-parse-lax@3.0.0(transitive)
+ Addedwrappy@1.0.2(transitive)
- Removedcapture-stack-trace@1.0.2(transitive)
- Removedcreate-error-class@3.0.2(transitive)
- Removedget-stream@3.0.0(transitive)
- Removedgot@6.7.1(transitive)
- Removedis-redirect@1.0.0(transitive)
- Removedis-retry-allowed@1.2.0(transitive)
- Removedis-stream@1.1.0(transitive)
- Removedprepend-http@1.0.4(transitive)
- Removedsafe-buffer@5.2.1(transitive)
- Removedtimed-out@4.0.1(transitive)
- Removedunzip-response@2.0.1(transitive)
- Removedurl-parse-lax@1.0.0(transitive)
Updatedgot@^9.5.0