UNPKG

zaif.jp

Version:

Promise-base Cryptocurrency Exchange zaif.jp API for node.js

53 lines (48 loc) 1.55 kB
"use strict"; var lp = require('./system').lp; var constant = require('./constant'); var HttpApiError = require('@you21979/http-api-error'); var makeapi = function(api){ return constant.OPT_FAPI_URL + '/' + api; } var createEndPoint = function(apiv1, pair){ return apiv1 + '/' + pair.toLowerCase(); } var createGetOption = function(url){ return { url: url, method: 'GET', forever: constant.OPT_KEEPALIVE, timeout: Math.floor(constant.OPT_TIMEOUT_SEC * 1000), transform2xxOnly : true, transform: function(body){ return JSON.parse(body) }, }; } var query = exports.query = function(method, pair){ return lp.req(createGetOption(createEndPoint(makeapi(method), pair))). then(function(result){ if('error' in result){ var error_code = (result.error).toUpperCase().replace(' ', '_'); throw new HttpApiError(result.error, "API", error_code, result); }else{ return result; } }); } exports.groups = function(group_id){ return query('groups', group_id); } exports.lastPrice = function(group_id, pair){ return query('last_price', [group_id, pair].join('/')); } exports.ticker = function(group_id, pair){ return query('ticker', [group_id, pair].join('/')); } exports.trades = function(group_id, pair){ return query('trades', [group_id, pair].join('/')); } exports.depth = function(group_id, pair){ return query('depth', [group_id, pair].join('/')); }