|
1 | 1 | package api |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "context" |
5 | 4 | "log" |
6 | 5 |
|
7 | | - "github.com/google/uuid" |
8 | 6 | "github.com/meero-com/hmb-proxy/pkg/aws" |
9 | 7 | "github.com/meero-com/hmb-proxy/pkg/config" |
10 | 8 | "github.com/meero-com/hmb-proxy/pkg/pollers" |
| 9 | + "github.com/meero-com/hmb-proxy/pkg/producers" |
11 | 10 | ) |
12 | 11 |
|
13 | 12 | func process(ch chan string, p requestPayload) { |
14 | | - ddb := aws.NewDdbCoordinator() |
15 | | - uuid := uuid.NewString() |
16 | | - requestTable := config.GetConfig("ddb.request_table").(string) |
| 13 | + var producer producers.Producer |
| 14 | + var poller pollers.Poller |
17 | 15 |
|
18 | | - ddbPayload := aws.DdbPayload{ |
19 | | - Name: p.Payload.Name, |
20 | | - } |
21 | | - ddbi := aws.DdbItem{ |
22 | | - Uuid: p.Uuid, |
23 | | - Payload: ddbPayload, |
24 | | - } |
25 | | - |
26 | | - _, err := ddb.Put(context.Background(), requestTable, ddbi) |
| 16 | + backendType := config.GetConfig("backend_type").(string) |
27 | 17 |
|
28 | | - if err != nil { |
29 | | - log.Fatalf("Failed to put item %s into table %s", uuid, requestTable) |
| 18 | + if backendType == "ddb" { |
| 19 | + ddb := aws.NewDdbCoordinator() |
| 20 | + producer = &producers.DdbProducer{ |
| 21 | + Ddb: ddb, |
| 22 | + } |
| 23 | + poller = &pollers.DdbPoller{ |
| 24 | + Ddb: ddb, |
| 25 | + } |
| 26 | + } else if backendType == "sqs" { |
| 27 | + sqs := aws.NewSqsCoordinator() |
| 28 | + producer = &producers.SqsProducer{ |
| 29 | + Sqs: sqs, |
| 30 | + } |
| 31 | + poller = &pollers.SqsPoller{ |
| 32 | + Sqs: sqs, |
| 33 | + } |
| 34 | + } else { |
| 35 | + log.Fatalf("Unsupported backend type: %s", backendType) |
30 | 36 | } |
31 | 37 |
|
32 | | - pollers.PollDdb(ch, p.Uuid, ddb) |
| 38 | + producer.Produce(p.Uuid, p.Payload.Name) |
| 39 | + poller.Poll(ch, p.Uuid) |
33 | 40 | } |
0 commit comments