Skip to content

Commit 4050b51

Browse files
[API-51] Implement events (#62)
1 parent 9936404 commit 4050b51

16 files changed

Lines changed: 426 additions & 46 deletions

api/dbv1/full_events.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package dbv1
2+
3+
import (
4+
"context"
5+
6+
"bridgerton.audius.co/trashid"
7+
)
8+
9+
type FullEvent struct {
10+
GetEventsRow
11+
12+
EventId trashid.HashId `json:"event_id"`
13+
UserId trashid.HashId `json:"user_id"`
14+
EntityId trashid.HashId `json:"entity_id"`
15+
}
16+
17+
func (q *Queries) FullEventsKeyed(ctx context.Context, arg GetEventsParams) (map[int32]FullEvent, error) {
18+
events, err := q.GetEvents(ctx, arg)
19+
if err != nil {
20+
return nil, err
21+
}
22+
eventMap := map[int32]FullEvent{}
23+
for _, event := range events {
24+
eventMap[int32(event.EventID)] = FullEvent{
25+
GetEventsRow: event,
26+
EventId: trashid.HashId(event.EventID),
27+
UserId: trashid.HashId(event.UserID),
28+
EntityId: trashid.HashId(event.EntityID.Int32),
29+
}
30+
}
31+
32+
return eventMap, nil
33+
}
34+
35+
func (q *Queries) ToFullEvent(event GetEventsRow) FullEvent {
36+
return FullEvent{
37+
GetEventsRow: event,
38+
EventId: trashid.HashId(event.EventID),
39+
UserId: trashid.HashId(event.UserID),
40+
EntityId: trashid.HashId(event.EntityID.Int32),
41+
}
42+
}

api/dbv1/get_events.sql.go

Lines changed: 96 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/dbv1/jsonb_types.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,8 @@ type FullRemixOfTrack struct {
5454
type FullRemixOf struct {
5555
Tracks []FullRemixOfTrack `json:"tracks"`
5656
}
57+
58+
type EventData struct {
59+
PrizeInfo string `json:"prize_info"`
60+
Description string `json:"description"`
61+
}

api/dbv1/models.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/dbv1/queries/get_events.sql

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
-- name: GetEvents :many
2+
SELECT
3+
event_id,
4+
entity_type::event_entity_type,
5+
user_id,
6+
entity_id,
7+
event_type::event_type,
8+
end_date,
9+
is_deleted,
10+
created_at,
11+
updated_at,
12+
event_data
13+
FROM events
14+
WHERE
15+
(@entity_ids::int[] = '{}' OR entity_id = ANY(@entity_ids::int[]))
16+
AND (@entity_type::text = '' OR entity_type = @entity_type::event_entity_type)
17+
AND (@event_type::text = '' OR event_type = @event_type::event_type)
18+
AND (@filter_deleted::boolean IS NULL OR is_deleted = @filter_deleted)
19+
ORDER BY created_at DESC, event_id ASC
20+
LIMIT @limit_val
21+
OFFSET @offset_val;

api/fixture_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,22 @@ var (
193193
"txhash": "0x1",
194194
"blockhash": "0x2",
195195
}
196+
197+
eventBaseRow = map[string]any{
198+
"txhash": "0x1",
199+
"blockhash": "0x2",
200+
"blocknumber": 101,
201+
"event_id": nil,
202+
"entity_type": nil,
203+
"user_id": nil,
204+
"entity_id": nil,
205+
"event_type": nil,
206+
"end_date": time.Now().Add(time.Hour * 24 * 30),
207+
"is_deleted": false,
208+
"created_at": time.Now(),
209+
"updated_at": time.Now(),
210+
"event_data": nil,
211+
}
196212
)
197213

198214
func insertFixtures(table string, baseRow map[string]any, csvFile string) {

api/server.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,12 @@ func NewApiServer(config config.Config) *ApiServer {
281281

282282
// Comments
283283
g.Get("/comments/unclaimed_id", app.v1CommentsUnclaimedId)
284+
285+
// Events
286+
g.Get("/events/unclaimed_id", app.v1EventsUnclaimedId)
287+
g.Get("/events", app.v1Events)
288+
g.Get("/events/all", app.v1Events)
289+
g.Get("/events/entity", app.v1Events)
284290
}
285291

286292
app.Static("/", "./static")

api/server_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ func TestMain(m *testing.M) {
8484
insertFixtures("grants", grantBaseRow, "testdata/grants_fixtures.csv")
8585
insertFixtures("comments", commentBaseRow, "testdata/comment_fixtures.csv")
8686
insertFixtures("comment_threads", map[string]any{}, "testdata/comment_thread_fixtures.csv")
87+
insertFixtures("events", eventBaseRow, "testdata/event_fixtures.csv")
8788

8889
// index to es / os
8990

api/testdata/event_fixtures.csv

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
event_id,entity_type,user_id,entity_id,event_type,is_deleted
2+
1,track,200,100,remix_contest,f
3+
2,track,200,100,live_event,f
4+
3,track,200,100,remix_contest,t
5+
4,track,200,101,remix_contest,f
6+
5,track,200,101,live_event,f
7+
6,track,201,102,remix_contest,f

api/testdata/user_fixtures.csv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ user_id,handle,handle_lc,is_deactivated,wallet,playlist_library
1111
100,authtest1,authtest1,f,0x681c616ae836ceca1effe00bd07f2fdbf9a082bc,
1212
101,authtest2,authtest2,f,0xc451c1f8943b575158310552b41230c61844a1c1,
1313
102,authtest3,authtest3,f,0x5f1a372b28956c8363f8bc3a231a6e9e1186ead8,
14+
200,eventsuser,eventsuser,f,0xffffffffff,
15+
201,eventsuser2,eventsuser2,f,0xffffffffff,

0 commit comments

Comments
 (0)