diff --git a/sqlc/query.sql.go b/sqlc/query.sql.go index c5956f8..38e63fe 100644 --- a/sqlc/query.sql.go +++ b/sqlc/query.sql.go @@ -19,6 +19,20 @@ func (q *Queries) AddSvg(ctx context.Context, svg string) error { return err } +const addUserPermission = `-- name: AddUserPermission :exec +INSERT INTO user_permission (user_id, permission) VALUES (?, ?) +` + +type AddUserPermissionParams struct { + UserID string + Permission string +} + +func (q *Queries) AddUserPermission(ctx context.Context, arg AddUserPermissionParams) error { + _, err := q.db.ExecContext(ctx, addUserPermission, arg.UserID, arg.Permission) + return err +} + const createCustomer = `-- name: CreateCustomer :exec INSERT INTO customer ( id @@ -268,6 +282,33 @@ func (q *Queries) GetUser(ctx context.Context, arg GetUserParams) (GetUserRow, e return i, err } +const getUserPermissions = `-- name: GetUserPermissions :many +SELECT permission FROM user_permission WHERE user_id = ? +` + +func (q *Queries) GetUserPermissions(ctx context.Context, userID string) ([]string, error) { + rows, err := q.db.QueryContext(ctx, getUserPermissions, userID) + if err != nil { + return nil, err + } + defer rows.Close() + var items []string + for rows.Next() { + var permission string + if err := rows.Scan(&permission); err != nil { + return nil, err + } + items = append(items, permission) + } + if err := rows.Close(); err != nil { + return nil, err + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const getUserRenew = `-- name: GetUserRenew :many SELECT id diff --git a/sqlite/query.sql b/sqlite/query.sql index abc7e7c..5429241 100644 --- a/sqlite/query.sql +++ b/sqlite/query.sql @@ -137,3 +137,9 @@ WHERE id = ?; -- name: GetSvgCount :one SELECT COUNT(*) as count FROM svg_icon; + +-- name: GetUserPermissions :many +SELECT permission FROM user_permission WHERE user_id = ?; + +-- name: AddUserPermission :exec +INSERT INTO user_permission (user_id, permission) VALUES (?, ?); diff --git a/sqlite/schema.sql b/sqlite/schema.sql index 4e30249..8c7165d 100644 --- a/sqlite/schema.sql +++ b/sqlite/schema.sql @@ -55,3 +55,12 @@ CREATE TABLE IF NOT EXISTS svg_icon ( id INTEGER PRIMARY KEY AUTOINCREMENT ,svg TEXT NOT NULL ); + + +CREATE TABLE IF NOT EXISTS user_permission ( + id INTEGER PRIMARY KEY AUTOINCREMENT + ,user_id TEXT NOT NULL + ,permission TEXT NOT NULL + ,FOREIGN KEY (user_id) REFERENCES user(id) + ,UNIQUE(user_id, permission) +); \ No newline at end of file