use-api #1

Merged
anatolykopyl merged 2 commits from use-api into master 2022-03-06 22:37:18 +00:00
3 changed files with 40 additions and 5 deletions
Showing only changes of commit 13a1bd9ab0 - Show all commits

13
api.js
View File

@@ -1,13 +1,20 @@
const { default: axios } = require('axios')
const axios = require('axios')
const { RateLimiter } = require('limiter')
class Api {
constructor () {
this.baseUrl = 'https://api.warframe.market/v1/'
this.timeout = 0
this.delay = process.env.API_DELAY ?? 3000
this.limiter = new RateLimiter({ tokensPerInterval: 1, interval: Number(this.delay) })
}
async _get (url) {
await this.limiter.removeTokens(1)
return axios.get(url)
}
async getOrders (url) {
const response = await axios.get(this.baseUrl + 'items/' + url + '/orders')
const response = await this._get(this.baseUrl + 'items/' + url + '/orders')
return response.data.payload.orders.filter(function (order) {
return order.order_type === 'sell' && order.user.status !== 'offline'
})

29
package-lock.json generated
View File

@@ -10,7 +10,8 @@
"dependencies": {
"axios": "^0.26.0",
"dotenv": "^16.0.0",
"handlebars": "^4.7.7"
"handlebars": "^4.7.7",
"limiter": "^2.1.0"
},
"devDependencies": {
"eslint-config-standard": "^16.0.3"
@@ -1646,6 +1647,11 @@
"json5": "lib/cli.js"
}
},
"node_modules/just-performance": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/just-performance/-/just-performance-4.3.0.tgz",
"integrity": "sha512-L7RjvtJsL0QO8xFs5wEoDDzzJwoiowRw6Rn/GnvldlchS2JQr9wFYPiwZcDfrbbujEKqKN0tvENdbjXdYhDp5Q=="
},
"node_modules/levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -1660,6 +1666,14 @@
"node": ">= 0.8.0"
}
},
"node_modules/limiter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/limiter/-/limiter-2.1.0.tgz",
"integrity": "sha512-361TYz6iay6n+9KvUUImqdLuFigK+K79qrUtBsXhJTLdH4rIt/r1y8r1iozwh8KbZNpujbFTSh74mJ7bwbAMOw==",
"dependencies": {
"just-performance": "4.3.0"
}
},
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -3567,6 +3581,11 @@
"minimist": "^1.2.0"
}
},
"just-performance": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/just-performance/-/just-performance-4.3.0.tgz",
"integrity": "sha512-L7RjvtJsL0QO8xFs5wEoDDzzJwoiowRw6Rn/GnvldlchS2JQr9wFYPiwZcDfrbbujEKqKN0tvENdbjXdYhDp5Q=="
},
"levn": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -3578,6 +3597,14 @@
"type-check": "~0.4.0"
}
},
"limiter": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/limiter/-/limiter-2.1.0.tgz",
"integrity": "sha512-361TYz6iay6n+9KvUUImqdLuFigK+K79qrUtBsXhJTLdH4rIt/r1y8r1iozwh8KbZNpujbFTSh74mJ7bwbAMOw==",
"requires": {
"just-performance": "4.3.0"
}
},
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",

View File

@@ -11,7 +11,8 @@
"dependencies": {
"axios": "^0.26.0",
"dotenv": "^16.0.0",
"handlebars": "^4.7.7"
"handlebars": "^4.7.7",
"limiter": "^2.1.0"
},
"devDependencies": {
"eslint-config-standard": "^16.0.3"