cobinhood-rx
Version:
CobinhoodRx is a rxjs node wrapper for the CobinhoodRx Api.
89 lines • 4.46 kB
JavaScript
"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