UNPKG

cobinhood-rx

Version:

CobinhoodRx is a rxjs node wrapper for the CobinhoodRx Api.

89 lines 4.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Model = require("../../Model"); const DataKeys_1 = require("../../Enum/DataKeys"); const Observable_1 = require("rxjs/Observable"); const HttpMethod_1 = require("../../Enum/HttpMethod"); const Validator_1 = require("../../Helpers/Validator"); class TradeAPI { constructor(transportManager, config) { this.transportManager = transportManager; this.apiVersion = config.apiVersion; this.baseUrl = config.baseUrl; this.baseEndPoint = `${this.baseUrl}${this.apiVersion}/trading`; } getOrder(orderId) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.GET, `${this.baseEndPoint}/orders/${Validator_1.default.uuid(orderId)}`) .map(data => this.transportManager.processResponse(data, Model.Order, DataKeys_1.DataKeyValues.Order)) .catch(this.catchErrorHandler); } getOrderTrades(orderId) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.GET, `${this.baseEndPoint}/orders/${Validator_1.default.uuid(orderId)}/trades`) .map(data => this.transportManager.processResponse(data, Model.OrderTrade, DataKeys_1.DataKeyValues.Trades)) .catch(this.catchErrorHandler); } getAllOrder(market, limit) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.GET, `${this.baseEndPoint}/orders`, { trading_pair_id: market, limit }) .map(data => this.transportManager.processResponse(data, Model.AllOrder, DataKeys_1.DataKeyValues.Orders)) .catch(this.catchErrorHandler); } placeBuyOrder(market, type, price, size) { return this.placeOrder(market, 'bid', type, price, size); } placeSellOrder(market, type, price, size) { return this.placeOrder(market, 'ask', type, price, size); } modifyOrder(orderId, price, size) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.PUT, `${this.baseEndPoint}/orders/${Validator_1.default.uuid(orderId)}`, { price: price.toString(), size: size.toString() }) .map(data => this.transportManager.processResponse(data)) .catch(this.catchErrorHandler); } cancelOrder(orderId) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.DELETE, `${this.baseEndPoint}/orders/${Validator_1.default.uuid(orderId)}`) .map(data => this.transportManager.processResponse(data)) .catch(this.catchErrorHandler); } getOrderHistory(market, limit) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.GET, `${this.baseEndPoint}/order_history`, { trading_pair_id: market, limit }) .map(data => this.transportManager.processResponse(data, Model.OrderHistory, DataKeys_1.DataKeyValues.Orders)) .catch(this.catchErrorHandler); } getTrade(tradeId) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.GET, `${this.baseEndPoint}/trades/${Validator_1.default.uuid(tradeId)}`) .map(data => this.transportManager.processResponse(data, Model.Trade, DataKeys_1.DataKeyValues.Trade)) .catch(this.catchErrorHandler); } getTradeHistory(market, limit = 10) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.GET, `${this.baseEndPoint}/trades`, { trading_pair_id: market, limit }) .map(data => this.transportManager.processResponse(data, Model.Trade, DataKeys_1.DataKeyValues.Trades)) .catch(this.catchErrorHandler); } placeOrder(market, side, type, price, size) { return this.transportManager.privateRequest(HttpMethod_1.HttpMethod.POST, `${this.baseEndPoint}/orders`, { trading_pair_id: market, side, type, price: price.toString(), size: size.toString() }) .map(data => this.transportManager.processResponse(data, Model.PlaceOrder, DataKeys_1.DataKeyValues.Order)) .catch(this.catchErrorHandler); } catchErrorHandler(res) { return Observable_1.Observable.throw(res); } } exports.TradeAPI = TradeAPI; //# sourceMappingURL=TradeAPI.js.map