Skip to content

Commit bf2c1a5

Browse files
committed
task 6 without facade [fix - 1]
1 parent 2366090 commit bf2c1a5

File tree

5 files changed

+43
-29
lines changed

5 files changed

+43
-29
lines changed

config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ kafka:
4949
brokers:
5050
- "localhost:9095"
5151
- "localhost:9096"
52-
- "kafka-1:9092"
53-
- "kafka-2:9092"
52+
# - "kafka-1:9092"
53+
# - "kafka-2:9092"
5454

5555
telemetry:
5656
graylogPath: 127.0.0.1:12201

internal/app/repo/method_lock.go

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,19 @@ func (r repo) Lock(ctx context.Context, n uint64) ([]model.VerificationEvent, er
3333
}
3434

3535
func (r repo) convertToVerificationEventModel(n uint64, eventsData []struct {
36-
EventId uint64
37-
EventType model.EventType
38-
EventStatus model.EventStatus
39-
VerificationId uint64
40-
VerificationName string
36+
EventId uint64 `db:"event_id"`
37+
EventType model.EventType `db:"type"`
38+
EventStatus model.EventStatus `db:"status"`
39+
VerificationId uint64 `db:"id"`
40+
VerificationName string `db:"name"`
4141
}) []model.VerificationEvent {
4242

4343
events := make([]model.VerificationEvent, 0, n)
4444

4545
for _, event := range eventsData {
4646
events = append(events, model.VerificationEvent{
4747
ID: event.EventId,
48+
VerificationID: event.VerificationId,
4849
Type: event.EventType,
4950
Status: event.EventStatus,
5051
Entity: &model.Verification{
@@ -57,33 +58,34 @@ func (r repo) convertToVerificationEventModel(n uint64, eventsData []struct {
5758
}
5859

5960
func (r repo) getEventsDataFromDB(ctx context.Context, err error, eventIds []uint64) ([]struct {
60-
EventId uint64
61-
EventType model.EventType
62-
EventStatus model.EventStatus
63-
VerificationId uint64
64-
VerificationName string
61+
EventId uint64 `db:"event_id"`
62+
EventType model.EventType `db:"type"`
63+
EventStatus model.EventStatus `db:"status"`
64+
VerificationId uint64 `db:"id"`
65+
VerificationName string `db:"name"`
6566
}, error) {
6667

67-
query, args, err := squirrel.Select("verification_events.id",
68-
"verification_events.event_type",
69-
"verification_events.event_status",
68+
query, args, err := squirrel.Select("verification_events.event_id",
69+
"verification_events.type",
70+
"verification_events.status",
7071
"verification.id",
7172
"verification.name").
73+
PlaceholderFormat(squirrel.Dollar).
7274
Join("verification on verification.id = verification_events.verification_id").
7375
From("verification_events").
74-
Where(squirrel.Eq{"verification_events.id": eventIds}).
76+
Where(squirrel.Eq{"verification_events.event_id": eventIds}).
7577
ToSql()
7678

7779
if err != nil {
7880
return nil, err
7981
}
8082

8183
var eventsData []struct {
82-
EventId uint64
83-
EventType model.EventType
84-
EventStatus model.EventStatus
85-
VerificationId uint64
86-
VerificationName string
84+
EventId uint64 `db:"event_id"`
85+
EventType model.EventType `db:"type"`
86+
EventStatus model.EventStatus `db:"status"`
87+
VerificationId uint64 `db:"id"`
88+
VerificationName string `db:"name"`
8789
}
8890

8991
err = r.db.SelectContext(ctx, &eventsData, query, args...)
@@ -96,22 +98,34 @@ func (r repo) getEventsDataFromDB(ctx context.Context, err error, eventIds []uin
9698
}
9799

98100
func (r repo) getEventIdsFromDB(ctx context.Context, n uint64) ([]uint64, error) {
99-
query, args, err := squirrel.Update("verification_events").
100-
Set("event_status", model.Processed).
101+
eventIds := make([]uint64, 0, n)
102+
query, args, err := squirrel.Select("event_id").
103+
From("verification_events").
101104
PlaceholderFormat(squirrel.Dollar).
102-
Where(squirrel.Eq{"event_status": model.Deferred}).
105+
Where(squirrel.Eq{"status ": "DEFERRED"}).
103106
Limit(n).
104-
Suffix("RETURNING id").
105107
ToSql()
106108

107109
if err != nil {
108110
logger.ErrorKV(ctx, "repo.getEventIdsFromDB() get select query", "err", err)
109111
return nil, err
110112
}
111113

112-
eventIds := make([]uint64, 0, n)
113114
err = r.db.SelectContext(ctx, &eventIds, query, args...)
114115

116+
query, args, err = squirrel.Update("verification_events").
117+
Set("status", model.Processed).
118+
PlaceholderFormat(squirrel.Dollar).
119+
Where(squirrel.Eq{"event_id ": eventIds}).
120+
ToSql()
121+
122+
if err != nil {
123+
logger.ErrorKV(ctx, "repo.getEventIdsFromDB() get select query", "err", err)
124+
return nil, err
125+
}
126+
127+
_, err = r.db.ExecContext(ctx, query, args...)
128+
115129
if err != nil {
116130
logger.ErrorKV(ctx, "repo.getEventIdsFromDB() get result query", "err", err)
117131
return nil, err

internal/app/repo/method_remove.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func (r repo) Remove(ctx context.Context, eventIDs []uint64) error {
1616
query, args, err := squirrel.Update("verification_events").
1717
PlaceholderFormat(squirrel.Dollar).
1818
Set("status", model.Processed).
19-
Where(squirrel.Eq{"id": eventIDs}).
19+
Where(squirrel.Eq{"event_id": eventIDs}).
2020
ToSql()
2121

2222
if err != nil {

internal/app/repo/method_unlock.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ func (r repo) Unlock(ctx context.Context, eventIDs []uint64) error {
1717
PlaceholderFormat(squirrel.Dollar).
1818
Set("status", model.Deferred).
1919
Set("updated_at", "NOW()").
20-
Where(squirrel.Eq{"id": eventIDs}).
20+
Where(squirrel.Eq{"event_id": eventIDs}).
2121
ToSql()
2222

2323
if err != nil {

migrations/00002_init_db.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ CREATE TYPE event_type AS ENUM ('CREATED', 'UPDATED', 'REMOVED');
33
CREATE TYPE event_status AS ENUM ('DEFERRED', 'PROCESSED');
44

55
CREATE TABLE verification_events (
6-
id BIGSERIAL PRIMARY KEY,
6+
event_id BIGSERIAL PRIMARY KEY,
77
verification_id BIGSERIAL NOT NULL,
88
type event_type NOT NULL,
99
status event_status NOT NULL,

0 commit comments

Comments
 (0)