code.vegaprotocol.io/vega@v0.79.0/datanode/service/stop_orders.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package service 17 18 import ( 19 "context" 20 21 "code.vegaprotocol.io/vega/datanode/entities" 22 ) 23 24 type StopOrderStore interface { 25 Add(order entities.StopOrder) error 26 Flush(ctx context.Context) ([]entities.StopOrder, error) 27 GetStopOrder(ctx context.Context, orderID string) (entities.StopOrder, error) 28 ListStopOrders(ctx context.Context, filter entities.StopOrderFilter, p entities.CursorPagination) ([]entities.StopOrder, entities.PageInfo, error) 29 } 30 31 type StopOrders struct { 32 store StopOrderStore 33 } 34 35 func NewStopOrders(store StopOrderStore) *StopOrders { 36 return &StopOrders{ 37 store: store, 38 } 39 } 40 41 func (s *StopOrders) Add(order entities.StopOrder) error { 42 return s.store.Add(order) 43 } 44 45 func (s *StopOrders) Flush(ctx context.Context) error { 46 _, err := s.store.Flush(ctx) 47 return err 48 } 49 50 func (s *StopOrders) GetStopOrder(ctx context.Context, orderID string) (entities.StopOrder, error) { 51 return s.store.GetStopOrder(ctx, orderID) 52 } 53 54 func (s *StopOrders) ListStopOrders(ctx context.Context, filter entities.StopOrderFilter, p entities.CursorPagination) ([]entities.StopOrder, entities.PageInfo, error) { 55 return s.store.ListStopOrders(ctx, filter, p) 56 }