-
Notifications
You must be signed in to change notification settings - Fork 0
/
arbs.go
44 lines (35 loc) · 977 Bytes
/
arbs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package arbs
import (
"context"
"log"
"github.com/robinmuhia/arbitrageClient/pkg/oddsWrapper/domain"
"github.com/robinmuhia/arbitrageClient/pkg/oddsWrapper/infrastructure/services"
"github.com/robinmuhia/arbitrageClient/pkg/oddsWrapper/usecases/arbs"
)
var client services.ArbClient
type ArbsParams struct {
Region string
Markets string
OddsFormat string
DateFormat string
}
func init() {
svc, err := services.NewServiceOddsAPI()
if err != nil {
log.Panic("error: %w", err)
}
client = svc
}
// GetAllArbs returns all possible arbitrage opportunities from the odds API.
func GetAllArbs(ctx context.Context, arbParams ArbsParams) ([]domain.ThreeOddsArb, []domain.TwoOddsArb, error) {
us := arbs.UseCasesArbsImpl{
OddsApiClient: client,
}
params := services.OddsParams{
Region: arbParams.Region,
Markets: arbParams.Markets,
OddsFormat: arbParams.OddsFormat,
DateFormat: arbParams.DateFormat,
}
return us.GetArbs(ctx, params)
}