Skip to content

Commit

Permalink
✨ Add CreatedBy in model.RequestQuery
Browse files Browse the repository at this point in the history
  • Loading branch information
H1rono committed Dec 26, 2024
1 parent fe8ffb2 commit d8215a4
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 7 deletions.
15 changes: 8 additions & 7 deletions model/request.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,11 +59,12 @@ type RequestDetail struct {
}

type RequestQuery struct {
Sort *string
Target *uuid.UUID
Status *string
Since *time.Time
Until *time.Time
Tag *string
Group *string
Sort *string
Target *uuid.UUID
Status *string
Since *time.Time
Until *time.Time
Tag *string
Group *string
CreatedBy *uuid.UUID
}
8 changes: 8 additions & 0 deletions model/request_impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,14 @@ func (repo *EntRepository) GetRequests(
),
)
}
if query.CreatedBy != nil && *query.CreatedBy != uuid.Nil {
requestsq = requestsq.
Where(
request.HasUserWith(
user.IDEQ(*query.CreatedBy),
),
)
}

requests, err := requestsq.All(ctx)
if err != nil {
Expand Down
68 changes: 68 additions & 0 deletions model/request_impl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ func TestEntRepository_GetRequests(t *testing.T) {
client8, storage8, err := setup(t, ctx, "get_requests8")
require.NoError(t, err)
repo8 := NewEntRepository(client8, storage8)
client9, storage9, err := setup(t, ctx, "get_requests9")
require.NoError(t, err)
repo9 := NewEntRepository(client9, storage9)

t.Run("SuccessWithSortCreatedAt", func(t *testing.T) {
t.Parallel()
Expand Down Expand Up @@ -591,6 +594,71 @@ func TestEntRepository_GetRequests(t *testing.T) {
assert.Equal(t, got[0].Tags[0].Name, request1.Tags[0].Name)
}
})

t.Run("SuccessWithCreatedBy", func(t *testing.T) {
t.Parallel()
ctx := context.Background()
user1, err := repo9.CreateUser(
ctx,
random.AlphaNumeric(t, 20),
random.AlphaNumeric(t, 30),
true)
require.NoError(t, err)
user2, err := repo9.CreateUser(
ctx,
random.AlphaNumeric(t, 20),
random.AlphaNumeric(t, 30),
true)
require.NoError(t, err)

budget := random.Numeric(t, 10000)
group, err := repo9.CreateGroup(
ctx,
random.AlphaNumeric(t, 20),
random.AlphaNumeric(t, 30),
&budget)
require.NoError(t, err)

request1, err := repo9.CreateRequest(
ctx,
"b",
random.AlphaNumeric(t, 100),
[]*Tag{},
[]*RequestTarget{},
group,
user1.ID)
require.NoError(t, err)
request2, err := repo9.CreateRequest(
ctx,
"a",
random.AlphaNumeric(t, 100),
[]*Tag{},
[]*RequestTarget{},
group,
user2.ID)
require.NoError(t, err)

sort := "title"

got, err := repo3.GetRequests(ctx, RequestQuery{
Sort: &sort,
})
require.NoError(t, err)
if assert.Len(t, got, 2) && assert.Equal(t, got[0].ID, request2.ID) {
assert.Equal(t, got[0].ID, request2.ID)
assert.Equal(t, got[0].Status, request2.Status)
assert.Equal(t, got[0].Title, request2.Title)
assert.Equal(t, got[0].Content, request2.Content)
assert.Equal(t, got[0].Tags[0].ID, request2.Tags[0].ID)
assert.Equal(t, got[0].Tags[0].Name, request2.Tags[0].Name)
assert.Equal(t, got[1].ID, request1.ID)
assert.Equal(t, got[1].Status, request1.Status)
assert.Equal(t, got[1].Title, request1.Title)
assert.Equal(t, got[1].Content, request1.Content)
assert.Equal(t, got[1].Tags[0].ID, request1.Tags[0].ID)
assert.Equal(t, got[1].Tags[0].Name, request1.Tags[0].Name)
}
})
}

func TestEntRepository_CreateRequest(t *testing.T) {
Expand Down

0 comments on commit d8215a4

Please sign in to comment.