From 85ab6424a4bca5659bd407e22c3fc720d8c450c1 Mon Sep 17 00:00:00 2001 From: PiquelChips Date: Tue, 10 Feb 2026 19:45:50 +0100 Subject: [PATCH 1/4] add interface for sqlc --- database/repository/querier.go | 38 ++++++++++++++++++++++++++++++++++ sqlc.yml | 1 + 2 files changed, 39 insertions(+) create mode 100644 database/repository/querier.go diff --git a/database/repository/querier.go b/database/repository/querier.go new file mode 100644 index 0000000..b48d8de --- /dev/null +++ b/database/repository/querier.go @@ -0,0 +1,38 @@ +// Code generated by sqlc. DO NOT EDIT. +// versions: +// sqlc v1.30.0 + +package repository + +import ( + "context" +) + +type Querier interface { + AddEmailAccount(ctx context.Context, arg AddEmailAccountParams) (int32, error) + AddSession(ctx context.Context, arg AddSessionParams) (UserSession, error) + AddShare(ctx context.Context, arg AddShareParams) error + AddUser(ctx context.Context, arg AddUserParams) (User, error) + ClearUserSessions(ctx context.Context, userid int32) error + CountUserMailAccounts(ctx context.Context, ownerid int32) (int64, error) + DeleteMailAccount(ctx context.Context, id int32) error + DeleteSessionByHash(ctx context.Context, tokenhash string) error + DeleteSessionById(ctx context.Context, arg DeleteSessionByIdParams) error + DeleteShare(ctx context.Context, arg DeleteShareParams) error + GetMailAccountByEmail(ctx context.Context, email string) (MailAccount, error) + GetMailAccountById(ctx context.Context, id int32) (MailAccount, error) + GetSessionFromHash(ctx context.Context, tokenhash string) (UserSession, error) + GetUserByEmail(ctx context.Context, email string) (User, error) + GetUserById(ctx context.Context, id int32) (User, error) + GetUserByUsername(ctx context.Context, username string) (User, error) + GetUserSessions(ctx context.Context, userid int32) ([]UserSession, error) + ListAccountShares(ctx context.Context, account int32) ([]int32, error) + ListUserMailAccounts(ctx context.Context, ownerid int32) ([]MailAccount, error) + ListUserNames(ctx context.Context) ([]string, error) + ListUsers(ctx context.Context, arg ListUsersParams) ([]User, error) + UpdateSession(ctx context.Context, arg UpdateSessionParams) error + UpdateUser(ctx context.Context, arg UpdateUserParams) error + UpdateUserAdmin(ctx context.Context, arg UpdateUserAdminParams) error +} + +var _ Querier = (*Queries)(nil) diff --git a/sqlc.yml b/sqlc.yml index 816e535..643275b 100644 --- a/sqlc.yml +++ b/sqlc.yml @@ -9,6 +9,7 @@ sql: out: "database/repository" sql_package: "pgx/v5" emit_json_tags: true + emit_interface: true overrides: - db_type: "timestamptz" go_type: From 69c6cac74765228b52d3356bee2b72ef434b220e Mon Sep 17 00:00:00 2001 From: PiquelChips Date: Tue, 10 Feb 2026 19:50:10 +0100 Subject: [PATCH 2/4] return pointers sqlc --- api/email.go | 8 ++++---- database/repository/email.sql.go | 14 +++++++------- database/repository/querier.go | 22 +++++++++++----------- database/repository/sessions.sql.go | 14 +++++++------- database/repository/users.sql.go | 22 +++++++++++----------- services/auth/auth.go | 4 ++-- services/email/accounts.go | 4 ++-- services/email/email.go | 4 ++-- services/users/users.go | 16 ++++++---------- sqlc.yml | 1 + 10 files changed, 53 insertions(+), 56 deletions(-) diff --git a/api/email.go b/api/email.go index a1efd69..eb0df21 100644 --- a/api/email.go +++ b/api/email.go @@ -333,7 +333,7 @@ func (h *EmailHandler) handleAccountInfo(w http.ResponseWriter, r *http.Request) return } - accountInfo, err := h.emailService.GetAccountInfo(r.Context(), &account) + accountInfo, err := h.emailService.GetAccountInfo(r.Context(), account) if err != nil { errors.HandleError(w, r, err) return @@ -377,7 +377,7 @@ func (h *EmailHandler) handleRemoveAccount(w http.ResponseWriter, r *http.Reques if err := h.authService.Authorize(&config.AuthRequest{ User: user, - Ressource: &account, + Ressource: account, Actions: []string{auth.ActionDelete}, Context: r.Context(), }); err != nil { @@ -406,7 +406,7 @@ func (h *EmailHandler) handleShareAccount(w http.ResponseWriter, r *http.Request if err := h.authService.Authorize(&config.AuthRequest{ User: user, - Ressource: &account, + Ressource: account, Actions: []string{auth.ActionShare}, Context: r.Context(), }); err != nil { @@ -447,7 +447,7 @@ func (h *EmailHandler) handleRemoveAccountShare(w http.ResponseWriter, r *http.R if err := h.authService.Authorize(&config.AuthRequest{ User: user, - Ressource: &account, + Ressource: account, Actions: []string{auth.ActionShare}, Context: r.Context(), }); err != nil { diff --git a/database/repository/email.sql.go b/database/repository/email.sql.go index 5f06ef0..16f3c12 100644 --- a/database/repository/email.sql.go +++ b/database/repository/email.sql.go @@ -101,7 +101,7 @@ WHERE m."email" = $1 LIMIT 1 ` -func (q *Queries) GetMailAccountByEmail(ctx context.Context, email string) (MailAccount, error) { +func (q *Queries) GetMailAccountByEmail(ctx context.Context, email string) (*MailAccount, error) { row := q.db.QueryRow(ctx, getMailAccountByEmail, email) var i MailAccount err := row.Scan( @@ -112,7 +112,7 @@ func (q *Queries) GetMailAccountByEmail(ctx context.Context, email string) (Mail &i.Username, &i.Password, ) - return i, err + return &i, err } const getMailAccountById = `-- name: GetMailAccountById :one @@ -122,7 +122,7 @@ WHERE m."id" = $1 LIMIT 1 ` -func (q *Queries) GetMailAccountById(ctx context.Context, id int32) (MailAccount, error) { +func (q *Queries) GetMailAccountById(ctx context.Context, id int32) (*MailAccount, error) { row := q.db.QueryRow(ctx, getMailAccountById, id) var i MailAccount err := row.Scan( @@ -133,7 +133,7 @@ func (q *Queries) GetMailAccountById(ctx context.Context, id int32) (MailAccount &i.Username, &i.Password, ) - return i, err + return &i, err } const listAccountShares = `-- name: ListAccountShares :many @@ -168,13 +168,13 @@ WHERE "mail_accounts"."ownerId" = $1 OR "mail_share"."userId" = $1 ORDER BY "mail_accounts"."id" ` -func (q *Queries) ListUserMailAccounts(ctx context.Context, ownerid int32) ([]MailAccount, error) { +func (q *Queries) ListUserMailAccounts(ctx context.Context, ownerid int32) ([]*MailAccount, error) { rows, err := q.db.Query(ctx, listUserMailAccounts, ownerid) if err != nil { return nil, err } defer rows.Close() - var items []MailAccount + var items []*MailAccount for rows.Next() { var i MailAccount if err := rows.Scan( @@ -187,7 +187,7 @@ func (q *Queries) ListUserMailAccounts(ctx context.Context, ownerid int32) ([]Ma ); err != nil { return nil, err } - items = append(items, i) + items = append(items, &i) } if err := rows.Err(); err != nil { return nil, err diff --git a/database/repository/querier.go b/database/repository/querier.go index b48d8de..e799df3 100644 --- a/database/repository/querier.go +++ b/database/repository/querier.go @@ -10,26 +10,26 @@ import ( type Querier interface { AddEmailAccount(ctx context.Context, arg AddEmailAccountParams) (int32, error) - AddSession(ctx context.Context, arg AddSessionParams) (UserSession, error) + AddSession(ctx context.Context, arg AddSessionParams) (*UserSession, error) AddShare(ctx context.Context, arg AddShareParams) error - AddUser(ctx context.Context, arg AddUserParams) (User, error) + AddUser(ctx context.Context, arg AddUserParams) (*User, error) ClearUserSessions(ctx context.Context, userid int32) error CountUserMailAccounts(ctx context.Context, ownerid int32) (int64, error) DeleteMailAccount(ctx context.Context, id int32) error DeleteSessionByHash(ctx context.Context, tokenhash string) error DeleteSessionById(ctx context.Context, arg DeleteSessionByIdParams) error DeleteShare(ctx context.Context, arg DeleteShareParams) error - GetMailAccountByEmail(ctx context.Context, email string) (MailAccount, error) - GetMailAccountById(ctx context.Context, id int32) (MailAccount, error) - GetSessionFromHash(ctx context.Context, tokenhash string) (UserSession, error) - GetUserByEmail(ctx context.Context, email string) (User, error) - GetUserById(ctx context.Context, id int32) (User, error) - GetUserByUsername(ctx context.Context, username string) (User, error) - GetUserSessions(ctx context.Context, userid int32) ([]UserSession, error) + GetMailAccountByEmail(ctx context.Context, email string) (*MailAccount, error) + GetMailAccountById(ctx context.Context, id int32) (*MailAccount, error) + GetSessionFromHash(ctx context.Context, tokenhash string) (*UserSession, error) + GetUserByEmail(ctx context.Context, email string) (*User, error) + GetUserById(ctx context.Context, id int32) (*User, error) + GetUserByUsername(ctx context.Context, username string) (*User, error) + GetUserSessions(ctx context.Context, userid int32) ([]*UserSession, error) ListAccountShares(ctx context.Context, account int32) ([]int32, error) - ListUserMailAccounts(ctx context.Context, ownerid int32) ([]MailAccount, error) + ListUserMailAccounts(ctx context.Context, ownerid int32) ([]*MailAccount, error) ListUserNames(ctx context.Context) ([]string, error) - ListUsers(ctx context.Context, arg ListUsersParams) ([]User, error) + ListUsers(ctx context.Context, arg ListUsersParams) ([]*User, error) UpdateSession(ctx context.Context, arg UpdateSessionParams) error UpdateUser(ctx context.Context, arg UpdateUserParams) error UpdateUserAdmin(ctx context.Context, arg UpdateUserAdminParams) error diff --git a/database/repository/sessions.sql.go b/database/repository/sessions.sql.go index 809bcc5..8cd2de1 100644 --- a/database/repository/sessions.sql.go +++ b/database/repository/sessions.sql.go @@ -23,7 +23,7 @@ type AddSessionParams struct { ExpiresAt time.Time `json:"expiresAt"` } -func (q *Queries) AddSession(ctx context.Context, arg AddSessionParams) (UserSession, error) { +func (q *Queries) AddSession(ctx context.Context, arg AddSessionParams) (*UserSession, error) { row := q.db.QueryRow(ctx, addSession, arg.UserId, arg.TokenHash, @@ -41,7 +41,7 @@ func (q *Queries) AddSession(ctx context.Context, arg AddSessionParams) (UserSes &i.ExpiresAt, &i.CreatedAt, ) - return i, err + return &i, err } const clearUserSessions = `-- name: ClearUserSessions :exec @@ -80,7 +80,7 @@ const getSessionFromHash = `-- name: GetSessionFromHash :one SELECT id, "userId", "tokenHash", "userAgent", "ipAdress", "expiresAt", "createdAt" FROM "user_sessions" WHERE "tokenHash" = $1 ` -func (q *Queries) GetSessionFromHash(ctx context.Context, tokenhash string) (UserSession, error) { +func (q *Queries) GetSessionFromHash(ctx context.Context, tokenhash string) (*UserSession, error) { row := q.db.QueryRow(ctx, getSessionFromHash, tokenhash) var i UserSession err := row.Scan( @@ -92,20 +92,20 @@ func (q *Queries) GetSessionFromHash(ctx context.Context, tokenhash string) (Use &i.ExpiresAt, &i.CreatedAt, ) - return i, err + return &i, err } const getUserSessions = `-- name: GetUserSessions :many SELECT id, "userId", "tokenHash", "userAgent", "ipAdress", "expiresAt", "createdAt" FROM "user_sessions" WHERE "userId" = $1 ORDER BY "id" ASC ` -func (q *Queries) GetUserSessions(ctx context.Context, userid int32) ([]UserSession, error) { +func (q *Queries) GetUserSessions(ctx context.Context, userid int32) ([]*UserSession, error) { rows, err := q.db.Query(ctx, getUserSessions, userid) if err != nil { return nil, err } defer rows.Close() - var items []UserSession + var items []*UserSession for rows.Next() { var i UserSession if err := rows.Scan( @@ -119,7 +119,7 @@ func (q *Queries) GetUserSessions(ctx context.Context, userid int32) ([]UserSess ); err != nil { return nil, err } - items = append(items, i) + items = append(items, &i) } if err := rows.Err(); err != nil { return nil, err diff --git a/database/repository/users.sql.go b/database/repository/users.sql.go index bffaddb..3953467 100644 --- a/database/repository/users.sql.go +++ b/database/repository/users.sql.go @@ -22,7 +22,7 @@ type AddUserParams struct { Role string `json:"role"` } -func (q *Queries) AddUser(ctx context.Context, arg AddUserParams) (User, error) { +func (q *Queries) AddUser(ctx context.Context, arg AddUserParams) (*User, error) { row := q.db.QueryRow(ctx, addUser, arg.Username, arg.Name, @@ -40,14 +40,14 @@ func (q *Queries) AddUser(ctx context.Context, arg AddUserParams) (User, error) &i.Role, &i.CreatedAt, ) - return i, err + return &i, err } const getUserByEmail = `-- name: GetUserByEmail :one SELECT id, username, name, image, email, role, "createdAt" FROM "users" WHERE "email" = $1 ` -func (q *Queries) GetUserByEmail(ctx context.Context, email string) (User, error) { +func (q *Queries) GetUserByEmail(ctx context.Context, email string) (*User, error) { row := q.db.QueryRow(ctx, getUserByEmail, email) var i User err := row.Scan( @@ -59,14 +59,14 @@ func (q *Queries) GetUserByEmail(ctx context.Context, email string) (User, error &i.Role, &i.CreatedAt, ) - return i, err + return &i, err } const getUserById = `-- name: GetUserById :one SELECT id, username, name, image, email, role, "createdAt" FROM "users" WHERE "id" = $1 ` -func (q *Queries) GetUserById(ctx context.Context, id int32) (User, error) { +func (q *Queries) GetUserById(ctx context.Context, id int32) (*User, error) { row := q.db.QueryRow(ctx, getUserById, id) var i User err := row.Scan( @@ -78,14 +78,14 @@ func (q *Queries) GetUserById(ctx context.Context, id int32) (User, error) { &i.Role, &i.CreatedAt, ) - return i, err + return &i, err } const getUserByUsername = `-- name: GetUserByUsername :one SELECT id, username, name, image, email, role, "createdAt" FROM "users" WHERE "username" = $1 ` -func (q *Queries) GetUserByUsername(ctx context.Context, username string) (User, error) { +func (q *Queries) GetUserByUsername(ctx context.Context, username string) (*User, error) { row := q.db.QueryRow(ctx, getUserByUsername, username) var i User err := row.Scan( @@ -97,7 +97,7 @@ func (q *Queries) GetUserByUsername(ctx context.Context, username string) (User, &i.Role, &i.CreatedAt, ) - return i, err + return &i, err } const listUserNames = `-- name: ListUserNames :many @@ -133,13 +133,13 @@ type ListUsersParams struct { Offset int32 `json:"offset"` } -func (q *Queries) ListUsers(ctx context.Context, arg ListUsersParams) ([]User, error) { +func (q *Queries) ListUsers(ctx context.Context, arg ListUsersParams) ([]*User, error) { rows, err := q.db.Query(ctx, listUsers, arg.Limit, arg.Offset) if err != nil { return nil, err } defer rows.Close() - var items []User + var items []*User for rows.Next() { var i User if err := rows.Scan( @@ -153,7 +153,7 @@ func (q *Queries) ListUsers(ctx context.Context, arg ListUsersParams) ([]User, e ); err != nil { return nil, err } - items = append(items, i) + items = append(items, &i) } if err := rows.Err(); err != nil { return nil, err diff --git a/services/auth/auth.go b/services/auth/auth.go index 26708bb..1ecbfb2 100644 --- a/services/auth/auth.go +++ b/services/auth/auth.go @@ -44,7 +44,7 @@ type AuthService interface { AuthMiddleware(next http.Handler) http.Handler // session management - GetUserSessions(ctx context.Context, userId int32) ([]repository.UserSession, error) + GetUserSessions(ctx context.Context, userId int32) ([]*repository.UserSession, error) DeleteUserSession(ctx context.Context, userId, id int32) error DeleteUserSessions(ctx context.Context, userId int32) error } @@ -225,7 +225,7 @@ func (s *realAuthService) AuthMiddleware(next http.Handler) http.Handler { }) } -func (s *realAuthService) GetUserSessions(ctx context.Context, userId int32) ([]repository.UserSession, error) { +func (s *realAuthService) GetUserSessions(ctx context.Context, userId int32) ([]*repository.UserSession, error) { return database.Queries.GetUserSessions(ctx, userId) } diff --git a/services/email/accounts.go b/services/email/accounts.go index 2272ea1..20cfdf6 100644 --- a/services/email/accounts.go +++ b/services/email/accounts.go @@ -20,11 +20,11 @@ type AccountInfo struct { Shares []string `json:"shares"` } -func (r *realEmailService) GetAccountByEmail(ctx context.Context, email string) (repository.MailAccount, error) { +func (r *realEmailService) GetAccountByEmail(ctx context.Context, email string) (*repository.MailAccount, error) { return database.Queries.GetMailAccountByEmail(ctx, email) } -func (r *realEmailService) ListAccounts(ctx context.Context, userId int32) ([]repository.MailAccount, error) { +func (r *realEmailService) ListAccounts(ctx context.Context, userId int32) ([]*repository.MailAccount, error) { return database.Queries.ListUserMailAccounts(ctx, userId) } diff --git a/services/email/email.go b/services/email/email.go index aad2cbe..52cfc19 100644 --- a/services/email/email.go +++ b/services/email/email.go @@ -10,8 +10,8 @@ import ( type EmailService interface { // account stuff - GetAccountByEmail(ctx context.Context, email string) (repository.MailAccount, error) - ListAccounts(ctx context.Context, userId int32) ([]repository.MailAccount, error) + GetAccountByEmail(ctx context.Context, email string) (*repository.MailAccount, error) + ListAccounts(ctx context.Context, userId int32) ([]*repository.MailAccount, error) CountAccounts(ctx context.Context, userId int32) (int64, error) AddAccount(ctx context.Context, params repository.AddEmailAccountParams) (int32, error) RemoveAccount(ctx context.Context, accountId int32) error diff --git a/services/users/users.go b/services/users/users.go index 2e201c6..52f9ee9 100644 --- a/services/users/users.go +++ b/services/users/users.go @@ -31,7 +31,7 @@ type UserService interface { DeleteUser(ctx context.Context, user *repository.User) error // other - ListUsers(ctx context.Context, offset, limit int32) ([]repository.User, error) + ListUsers(ctx context.Context, offset, limit int32) ([]*repository.User, error) } type realUserService struct{} @@ -41,18 +41,15 @@ func NewRealUserService() *realUserService { } func (s *realUserService) GetUserById(ctx context.Context, id int32) (*repository.User, error) { - user, err := database.Queries.GetUserById(ctx, id) - return &user, err + return database.Queries.GetUserById(ctx, id) } func (s *realUserService) GetUserByUsername(ctx context.Context, username string) (*repository.User, error) { - user, err := database.Queries.GetUserByUsername(ctx, username) - return &user, err + return database.Queries.GetUserByUsername(ctx, username) } func (s *realUserService) GetUserByEmail(ctx context.Context, email string) (*repository.User, error) { - user, err := database.Queries.GetUserByEmail(ctx, email) - return &user, err + return database.Queries.GetUserByEmail(ctx, email) } func (s *realUserService) GetUserFromContext(ctx context.Context) (*repository.User, error) { @@ -105,8 +102,7 @@ func (s *realUserService) RegisterUser(ctx context.Context, username, email, nam Role: role, } - user, err := database.Queries.AddUser(ctx, params) - return &user, err + return database.Queries.AddUser(ctx, params) } func (s *realUserService) DeleteUser(ctx context.Context, user *repository.User) error { @@ -181,7 +177,7 @@ func (s *realUserService) formatAndValidateUsername(ctx context.Context, usernam return username, nil } -func (s *realUserService) ListUsers(ctx context.Context, offset, limit int32) ([]repository.User, error) { +func (s *realUserService) ListUsers(ctx context.Context, offset, limit int32) ([]*repository.User, error) { if limit > 200 { limit = 200 } diff --git a/sqlc.yml b/sqlc.yml index 643275b..ca801de 100644 --- a/sqlc.yml +++ b/sqlc.yml @@ -10,6 +10,7 @@ sql: sql_package: "pgx/v5" emit_json_tags: true emit_interface: true + emit_result_struct_pointers: true overrides: - db_type: "timestamptz" go_type: From 6e8ace4499dcfaaa463de7c4a22f623cdf47ae3c Mon Sep 17 00:00:00 2001 From: PiquelChips Date: Tue, 10 Feb 2026 19:50:49 +0100 Subject: [PATCH 3/4] use pointers for null types sqlc --- sqlc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/sqlc.yml b/sqlc.yml index ca801de..534a6cf 100644 --- a/sqlc.yml +++ b/sqlc.yml @@ -11,6 +11,7 @@ sql: emit_json_tags: true emit_interface: true emit_result_struct_pointers: true + emit_pointers_for_null_types: true overrides: - db_type: "timestamptz" go_type: From c2d8759c25f2a20db693be0b5e2938b8adcd99c8 Mon Sep 17 00:00:00 2001 From: PiquelChips Date: Tue, 10 Feb 2026 21:47:51 +0100 Subject: [PATCH 4/4] increase query parameter limit --- api/email.go | 7 +------ database/repository/email.sql.go | 9 ++------- database/repository/querier.go | 6 +++--- database/repository/sessions.sql.go | 9 ++------- database/repository/users.sql.go | 9 ++------- services/auth/auth.go | 2 +- services/email/accounts.go | 4 ++-- services/email/email.go | 2 +- services/users/users.go | 2 +- sqlc.yml | 1 + 10 files changed, 16 insertions(+), 35 deletions(-) diff --git a/api/email.go b/api/email.go index eb0df21..77f9d3a 100644 --- a/api/email.go +++ b/api/email.go @@ -461,12 +461,7 @@ func (h *EmailHandler) handleRemoveAccountShare(w http.ResponseWriter, r *http.R return } - params := repository.DeleteShareParams{ - UserId: sharingUser.ID, - Account: account.ID, - } - - if err := h.emailService.RemoveShare(r.Context(), params); err != nil { + if err := h.emailService.RemoveShare(r.Context(), sharingUser.ID, account.ID); err != nil { errors.HandleError(w, r, err) return } diff --git a/database/repository/email.sql.go b/database/repository/email.sql.go index 16f3c12..38ca958 100644 --- a/database/repository/email.sql.go +++ b/database/repository/email.sql.go @@ -84,13 +84,8 @@ DELETE FROM "mail_share" WHERE "userId" = $1 AND "account" = $2 ` -type DeleteShareParams struct { - UserId int32 `json:"userId"` - Account int32 `json:"account"` -} - -func (q *Queries) DeleteShare(ctx context.Context, arg DeleteShareParams) error { - _, err := q.db.Exec(ctx, deleteShare, arg.UserId, arg.Account) +func (q *Queries) DeleteShare(ctx context.Context, userId int32, account int32) error { + _, err := q.db.Exec(ctx, deleteShare, userId, account) return err } diff --git a/database/repository/querier.go b/database/repository/querier.go index e799df3..3e99467 100644 --- a/database/repository/querier.go +++ b/database/repository/querier.go @@ -17,8 +17,8 @@ type Querier interface { CountUserMailAccounts(ctx context.Context, ownerid int32) (int64, error) DeleteMailAccount(ctx context.Context, id int32) error DeleteSessionByHash(ctx context.Context, tokenhash string) error - DeleteSessionById(ctx context.Context, arg DeleteSessionByIdParams) error - DeleteShare(ctx context.Context, arg DeleteShareParams) error + DeleteSessionById(ctx context.Context, userId int32, iD int32) error + DeleteShare(ctx context.Context, userId int32, account int32) error GetMailAccountByEmail(ctx context.Context, email string) (*MailAccount, error) GetMailAccountById(ctx context.Context, id int32) (*MailAccount, error) GetSessionFromHash(ctx context.Context, tokenhash string) (*UserSession, error) @@ -29,7 +29,7 @@ type Querier interface { ListAccountShares(ctx context.Context, account int32) ([]int32, error) ListUserMailAccounts(ctx context.Context, ownerid int32) ([]*MailAccount, error) ListUserNames(ctx context.Context) ([]string, error) - ListUsers(ctx context.Context, arg ListUsersParams) ([]*User, error) + ListUsers(ctx context.Context, limit int32, offset int32) ([]*User, error) UpdateSession(ctx context.Context, arg UpdateSessionParams) error UpdateUser(ctx context.Context, arg UpdateUserParams) error UpdateUserAdmin(ctx context.Context, arg UpdateUserAdminParams) error diff --git a/database/repository/sessions.sql.go b/database/repository/sessions.sql.go index 8cd2de1..b1c224f 100644 --- a/database/repository/sessions.sql.go +++ b/database/repository/sessions.sql.go @@ -66,13 +66,8 @@ const deleteSessionById = `-- name: DeleteSessionById :exec DELETE FROM "user_sessions" WHERE "userId" = $1 AND "id" = $2 ` -type DeleteSessionByIdParams struct { - UserId int32 `json:"userId"` - ID int32 `json:"id"` -} - -func (q *Queries) DeleteSessionById(ctx context.Context, arg DeleteSessionByIdParams) error { - _, err := q.db.Exec(ctx, deleteSessionById, arg.UserId, arg.ID) +func (q *Queries) DeleteSessionById(ctx context.Context, userId int32, iD int32) error { + _, err := q.db.Exec(ctx, deleteSessionById, userId, iD) return err } diff --git a/database/repository/users.sql.go b/database/repository/users.sql.go index 3953467..a096cc4 100644 --- a/database/repository/users.sql.go +++ b/database/repository/users.sql.go @@ -128,13 +128,8 @@ const listUsers = `-- name: ListUsers :many SELECT id, username, name, image, email, role, "createdAt" FROM "users" ORDER BY "id" ASC LIMIT $1 OFFSET $2 ` -type ListUsersParams struct { - Limit int32 `json:"limit"` - Offset int32 `json:"offset"` -} - -func (q *Queries) ListUsers(ctx context.Context, arg ListUsersParams) ([]*User, error) { - rows, err := q.db.Query(ctx, listUsers, arg.Limit, arg.Offset) +func (q *Queries) ListUsers(ctx context.Context, limit int32, offset int32) ([]*User, error) { + rows, err := q.db.Query(ctx, listUsers, limit, offset) if err != nil { return nil, err } diff --git a/services/auth/auth.go b/services/auth/auth.go index 1ecbfb2..3894cd5 100644 --- a/services/auth/auth.go +++ b/services/auth/auth.go @@ -230,7 +230,7 @@ func (s *realAuthService) GetUserSessions(ctx context.Context, userId int32) ([] } func (s *realAuthService) DeleteUserSession(ctx context.Context, userId, id int32) error { - return database.Queries.DeleteSessionById(ctx, repository.DeleteSessionByIdParams{UserId: userId, ID: id}) + return database.Queries.DeleteSessionById(ctx, userId, id) } func (s *realAuthService) DeleteUserSessions(ctx context.Context, userId int32) error { diff --git a/services/email/accounts.go b/services/email/accounts.go index 20cfdf6..4ab4583 100644 --- a/services/email/accounts.go +++ b/services/email/accounts.go @@ -93,8 +93,8 @@ func (r *realEmailService) AddShare(ctx context.Context, params repository.AddSh return database.Queries.AddShare(ctx, params) } -func (r *realEmailService) RemoveShare(ctx context.Context, params repository.DeleteShareParams) error { - return database.Queries.DeleteShare(ctx, params) +func (r *realEmailService) RemoveShare(ctx context.Context, userId, accountId int32) error { + return database.Queries.DeleteShare(ctx, userId, accountId) } func (r *realEmailService) GetAccountShares(ctx context.Context, account int32) ([]int32, error) { diff --git a/services/email/email.go b/services/email/email.go index 52cfc19..c89226f 100644 --- a/services/email/email.go +++ b/services/email/email.go @@ -19,7 +19,7 @@ type EmailService interface { // sharing AddShare(ctx context.Context, params repository.AddShareParams) error - RemoveShare(ctx context.Context, params repository.DeleteShareParams) error + RemoveShare(ctx context.Context, userId, accountId int32) error GetAccountShares(ctx context.Context, account int32) ([]int32, error) } diff --git a/services/users/users.go b/services/users/users.go index 52f9ee9..950cbf1 100644 --- a/services/users/users.go +++ b/services/users/users.go @@ -181,7 +181,7 @@ func (s *realUserService) ListUsers(ctx context.Context, offset, limit int32) ([ if limit > 200 { limit = 200 } - return database.Queries.ListUsers(ctx, repository.ListUsersParams{Offset: offset, Limit: limit}) + return database.Queries.ListUsers(ctx, offset, limit) } func (s *realUserService) GetUsernameBlacklist() []string { diff --git a/sqlc.yml b/sqlc.yml index 534a6cf..683fe09 100644 --- a/sqlc.yml +++ b/sqlc.yml @@ -12,6 +12,7 @@ sql: emit_interface: true emit_result_struct_pointers: true emit_pointers_for_null_types: true + query_parameter_limit: 2 overrides: - db_type: "timestamptz" go_type: