Skip to content

Commit aec94f5

Browse files
committed
updated version of the pair API
1 parent 796c721 commit aec94f5

File tree

8 files changed

+435
-11
lines changed

8 files changed

+435
-11
lines changed

endpoints/info.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ func ServeInfoResource(
2929
r.HandleFunc("/info/exchange", e.handleGetExchangeInfo)
3030
r.HandleFunc("/info/operators", e.handleGetOperatorsInfo)
3131
r.HandleFunc("/info/fees", e.handleGetFeeInfo)
32-
r.HandleFunc("/stats/all", e.handleGetStats)
3332
r.HandleFunc("/stats/trading", e.handleGetTradingStats)
34-
r.HandleFunc("/stats/pairs", e.handleGetPairStats)
33+
// r.HandleFunc("/stats/all", e.handleGetStats)
34+
// r.HandleFunc("/stats/pairs", e.handleGetPairStats)
3535
}
3636

3737
func (e *infoEndpoint) handleGetInfo(w http.ResponseWriter, r *http.Request) {

endpoints/pair.go

+44
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,51 @@ func (e *pairEndpoint) HandleGetPairData(w http.ResponseWriter, r *http.Request)
199199
v := r.URL.Query()
200200
baseToken := v.Get("baseToken")
201201
quoteToken := v.Get("quoteToken")
202+
exact := v.Get("exact")
203+
simple := v.Get("simple")
202204

205+
if simple == "true" && exact == "true" {
206+
httputils.WriteError(w, http.StatusBadRequest, "'simple' and 'exact' param can not both be true")
207+
return
208+
}
209+
210+
//Return simplified version of token pair data
211+
if baseToken == "" && quoteToken == "" && simple == "true" {
212+
res, err := e.pairService.GetAllSimplifiedTokenPairData()
213+
if err != nil {
214+
logger.Error(err)
215+
httputils.WriteError(w, http.StatusInternalServerError, "")
216+
return
217+
}
218+
219+
if res == nil {
220+
httputils.WriteJSON(w, http.StatusOK, []types.Pair{})
221+
return
222+
}
223+
224+
httputils.WriteJSON(w, http.StatusOK, res)
225+
return
226+
}
227+
228+
//Return formal version of token pair data
229+
if baseToken == "" && quoteToken == "" && exact == "true" {
230+
res, err := e.pairService.GetAllExactTokenPairData()
231+
if err != nil {
232+
logger.Error(err)
233+
httputils.WriteError(w, http.StatusInternalServerError, "")
234+
return
235+
}
236+
237+
if res == nil {
238+
httputils.WriteJSON(w, http.StatusOK, []types.Pair{})
239+
return
240+
}
241+
242+
httputils.WriteJSON(w, http.StatusOK, res)
243+
return
244+
}
245+
246+
//Return the simplified version of token pair data
203247
if baseToken == "" && quoteToken == "" {
204248
res, err := e.pairService.GetAllTokenPairData()
205249
if err != nil {

interfaces/interfaces.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,9 @@ type PairService interface {
205205
GetByID(id bson.ObjectId) (*types.Pair, error)
206206
GetByTokenAddress(bt, qt common.Address) (*types.Pair, error)
207207
GetTokenPairData(bt, qt common.Address) ([]*types.Tick, error)
208-
GetAllTokenPairData() ([]*types.PairData, error)
208+
GetAllExactTokenPairData() ([]*types.PairData, error)
209+
GetAllSimplifiedTokenPairData() ([]*types.SimplifiedPairAPIData, error)
210+
GetAllTokenPairData() ([]*types.PairAPIData, error)
209211
GetAll() ([]types.Pair, error)
210212
GetListedPairs() ([]types.Pair, error)
211213
GetUnlistedPairs() ([]types.Pair, error)

0 commit comments

Comments
 (0)