Implementing SQL version of roles interface
Signed-off-by: Ethan Wellenreiter <ewellenreiter@gmail.com>
This commit is contained in:
parent
65e18bf7a2
commit
074658f71c
39
backend/internal/storage/sql-roles.go
Normal file
39
backend/internal/storage/sql-roles.go
Normal file
@ -0,0 +1,39 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type SQLRolesStore struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
func (s *SQLRolesStore) GetByName(ctx context.Context, name string) (*Role, error) {
|
||||
ctx, cancel := context.WithTimeout(ctx, QueryTimeoutDuration)
|
||||
defer cancel()
|
||||
|
||||
query := `SELECT id, name, description, level FROM roles WHERE name = $1`
|
||||
|
||||
role := &Role{}
|
||||
err := s.db.QueryRowContext(ctx, query, name).Scan(&role.ID, &role.Name, &role.Description, &role.Level)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return role, nil
|
||||
}
|
||||
func (s *SQLRolesStore) GetById(ctx context.Context, id int64) (*Role, error) {
|
||||
ctx, cancel := context.WithTimeout(ctx, QueryTimeoutDuration)
|
||||
defer cancel()
|
||||
|
||||
query := `SELECT id, name, description, level FROM roles WHERE id = $1`
|
||||
|
||||
role := &Role{}
|
||||
err := s.db.QueryRowContext(ctx, query, id).Scan(&role.ID, &role.Name, &role.Description, &role.Level)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return role, nil
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user