// GetOrders get order list. func GetOrders(egn engine.Exchange) sknet.HandlerFunc { return func(c *sknet.Context) error { rlt := &pp.EmptyRes{} for { req := pp.GetOrderReq{} if err := c.BindJSON(&req); err != nil { rlt = pp.MakeErrResWithCode(pp.ErrCode_WrongRequest) break } op, err := order.TypeFromStr(req.GetType()) if err != nil { rlt = pp.MakeErrResWithCode(pp.ErrCode_WrongRequest) logger.Error(err.Error()) break } ords, err := egn.GetOrders(req.GetCoinPair(), op, req.GetStart(), req.GetEnd()) if err != nil { rlt = pp.MakeErrResWithCode(pp.ErrCode_WrongRequest) logger.Error(err.Error()) break } res := pp.GetOrderRes{ CoinPair: req.CoinPair, Type: req.Type, Orders: make([]*pp.Order, len(ords)), } for i := range ords { res.Orders[i] = &pp.Order{ Id: &ords[i].ID, Type: req.Type, Price: &ords[i].Price, Amount: &ords[i].Amount, RestAmt: &ords[i].RestAmt, CreatedAt: &ords[i].CreatedAt, } } res.Result = pp.MakeResultWithCode(pp.ErrCode_Success) return c.SendJSON(&res) } return c.Error(rlt) } }