Merge branch 'expiredPr' into 'main'
Expired pr See merge request backend/quiz/common!21
This commit is contained in:
commit
cff3083d9c
@ -266,11 +266,19 @@ DELETE FROM privileges WHERE id = $1;
|
||||
-- name: GetQuizConfig :one
|
||||
SELECT config, accountid FROM quiz WHERE id = $1 AND deleted = false;
|
||||
|
||||
-- name: GetExpiredPrivilege :many
|
||||
SELECT id, privilegeID, privilege_name, amount, created_at
|
||||
FROM privileges
|
||||
WHERE created_at + amount * interval '1 day' < NOW()
|
||||
AND privilegeid = $1;
|
||||
-- name: GetExpiredDayPrivilege :many
|
||||
SELECT p.id, p.privilegeID, p.privilege_name, p.amount, p.created_at, a.user_id
|
||||
FROM privileges p
|
||||
JOIN account a ON p.account_id = a.id
|
||||
WHERE p.created_at + p.amount * interval '1 day' < NOW()
|
||||
AND p.privilegeID = $1;
|
||||
|
||||
-- name: GetExpiredCountPrivilege :many
|
||||
SELECT p.id, p.privilegeID, p.privilege_name, p.amount, p.created_at, a.user_id
|
||||
FROM privileges p
|
||||
JOIN account a ON p.account_id = a.id
|
||||
WHERE p.amount = 0
|
||||
AND p.privilegeID = $1;
|
||||
|
||||
-- name: CheckAndAddDefault :exec
|
||||
UPDATE privileges
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.25.0
|
||||
// sqlc v1.26.0
|
||||
|
||||
package sqlcgen
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.25.0
|
||||
// sqlc v1.26.0
|
||||
|
||||
package sqlcgen
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
// Code generated by sqlc. DO NOT EDIT.
|
||||
// versions:
|
||||
// sqlc v1.25.0
|
||||
// sqlc v1.26.0
|
||||
// source: queries.sql
|
||||
|
||||
package sqlcgen
|
||||
@ -1477,36 +1477,86 @@ func (q *Queries) GetCurrentAccount(ctx context.Context, accountid string) (User
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getExpiredPrivilege = `-- name: GetExpiredPrivilege :many
|
||||
SELECT id, privilegeID, privilege_name, amount, created_at
|
||||
FROM privileges
|
||||
WHERE created_at + amount * interval '1 day' < NOW()
|
||||
AND privilegeid = $1
|
||||
const getExpiredCountPrivilege = `-- name: GetExpiredCountPrivilege :many
|
||||
SELECT p.id, p.privilegeID, p.privilege_name, p.amount, p.created_at, a.user_id
|
||||
FROM privileges p
|
||||
JOIN account a ON p.account_id = a.id
|
||||
WHERE p.amount = 0
|
||||
AND p.privilegeID = $1
|
||||
`
|
||||
|
||||
type GetExpiredPrivilegeRow struct {
|
||||
type GetExpiredCountPrivilegeRow struct {
|
||||
ID int32 `db:"id" json:"id"`
|
||||
Privilegeid sql.NullString `db:"privilegeid" json:"privilegeid"`
|
||||
PrivilegeName sql.NullString `db:"privilege_name" json:"privilege_name"`
|
||||
Amount sql.NullInt32 `db:"amount" json:"amount"`
|
||||
CreatedAt sql.NullTime `db:"created_at" json:"created_at"`
|
||||
UserID sql.NullString `db:"user_id" json:"user_id"`
|
||||
}
|
||||
|
||||
func (q *Queries) GetExpiredPrivilege(ctx context.Context, privilegeid sql.NullString) ([]GetExpiredPrivilegeRow, error) {
|
||||
rows, err := q.db.QueryContext(ctx, getExpiredPrivilege, privilegeid)
|
||||
func (q *Queries) GetExpiredCountPrivilege(ctx context.Context, privilegeid sql.NullString) ([]GetExpiredCountPrivilegeRow, error) {
|
||||
rows, err := q.db.QueryContext(ctx, getExpiredCountPrivilege, privilegeid)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []GetExpiredPrivilegeRow
|
||||
var items []GetExpiredCountPrivilegeRow
|
||||
for rows.Next() {
|
||||
var i GetExpiredPrivilegeRow
|
||||
var i GetExpiredCountPrivilegeRow
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.Privilegeid,
|
||||
&i.PrivilegeName,
|
||||
&i.Amount,
|
||||
&i.CreatedAt,
|
||||
&i.UserID,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
items = append(items, i)
|
||||
}
|
||||
if err := rows.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return items, nil
|
||||
}
|
||||
|
||||
const getExpiredDayPrivilege = `-- name: GetExpiredDayPrivilege :many
|
||||
SELECT p.id, p.privilegeID, p.privilege_name, p.amount, p.created_at, a.user_id
|
||||
FROM privileges p
|
||||
JOIN account a ON p.account_id = a.id
|
||||
WHERE p.created_at + p.amount * interval '1 day' < NOW()
|
||||
AND p.privilegeID = $1
|
||||
`
|
||||
|
||||
type GetExpiredDayPrivilegeRow struct {
|
||||
ID int32 `db:"id" json:"id"`
|
||||
Privilegeid sql.NullString `db:"privilegeid" json:"privilegeid"`
|
||||
PrivilegeName sql.NullString `db:"privilege_name" json:"privilege_name"`
|
||||
Amount sql.NullInt32 `db:"amount" json:"amount"`
|
||||
CreatedAt sql.NullTime `db:"created_at" json:"created_at"`
|
||||
UserID sql.NullString `db:"user_id" json:"user_id"`
|
||||
}
|
||||
|
||||
func (q *Queries) GetExpiredDayPrivilege(ctx context.Context, privilegeid sql.NullString) ([]GetExpiredDayPrivilegeRow, error) {
|
||||
rows, err := q.db.QueryContext(ctx, getExpiredDayPrivilege, privilegeid)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
var items []GetExpiredDayPrivilegeRow
|
||||
for rows.Next() {
|
||||
var i GetExpiredDayPrivilegeRow
|
||||
if err := rows.Scan(
|
||||
&i.ID,
|
||||
&i.Privilegeid,
|
||||
&i.PrivilegeName,
|
||||
&i.Amount,
|
||||
&i.CreatedAt,
|
||||
&i.UserID,
|
||||
); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -266,6 +266,11 @@ type ShortPrivilege struct {
|
||||
CreatedAt time.Time `json:"created_at"`
|
||||
}
|
||||
|
||||
type ExpiredPrivileges struct {
|
||||
UserID string
|
||||
Privilege ShortPrivilege
|
||||
}
|
||||
|
||||
type Account struct {
|
||||
ID string `json:"id"`
|
||||
UserID string `json:"user_id"`
|
||||
|
@ -11,19 +11,19 @@ import (
|
||||
)
|
||||
|
||||
type Deps struct {
|
||||
Queries *sqlcgen.Queries
|
||||
Pool *sql.DB
|
||||
Queries *sqlcgen.Queries
|
||||
Pool *sql.DB
|
||||
}
|
||||
|
||||
type AccountRepository struct {
|
||||
queries *sqlcgen.Queries
|
||||
pool *sql.DB
|
||||
queries *sqlcgen.Queries
|
||||
pool *sql.DB
|
||||
}
|
||||
|
||||
func NewAccountRepository(deps Deps) *AccountRepository {
|
||||
return &AccountRepository{
|
||||
queries: deps.Queries,
|
||||
pool: deps.Pool,
|
||||
queries: deps.Queries,
|
||||
pool: deps.Pool,
|
||||
}
|
||||
}
|
||||
|
||||
@ -206,13 +206,13 @@ func (r *AccountRepository) InsertPrivilege(ctx context.Context, privilege *mode
|
||||
}
|
||||
|
||||
// test +
|
||||
func (r *AccountRepository) GetExpired(ctx context.Context, privilegeID string) ([]model.ShortPrivilege, error) {
|
||||
rows, err := r.queries.GetExpiredPrivilege(ctx, sql.NullString{String: privilegeID, Valid: privilegeID != ""})
|
||||
func (r *AccountRepository) GetExpired(ctx context.Context, privilegeID string) ([]model.ExpiredPrivileges, error) {
|
||||
rows, err := r.queries.GetExpiredDayPrivilege(ctx, sql.NullString{String: privilegeID, Valid: privilegeID != ""})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var expiredRecords []model.ShortPrivilege
|
||||
var expiredRecords []model.ExpiredPrivileges
|
||||
|
||||
for _, row := range rows {
|
||||
privilege := model.ShortPrivilege{
|
||||
@ -222,7 +222,36 @@ func (r *AccountRepository) GetExpired(ctx context.Context, privilegeID string)
|
||||
Amount: uint64(row.Amount.Int32),
|
||||
CreatedAt: row.CreatedAt.Time,
|
||||
}
|
||||
expiredRecords = append(expiredRecords, privilege)
|
||||
expiredRecords = append(expiredRecords, model.ExpiredPrivileges{
|
||||
UserID: row.UserID.String,
|
||||
Privilege: privilege,
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
return expiredRecords, nil
|
||||
}
|
||||
|
||||
func (r *AccountRepository) GetExpiredCount(ctx context.Context, privilegeID string) ([]model.ExpiredPrivileges, error) {
|
||||
rows, err := r.queries.GetExpiredCountPrivilege(ctx, sql.NullString{String: privilegeID, Valid: privilegeID != ""})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var expiredRecords []model.ExpiredPrivileges
|
||||
|
||||
for _, row := range rows {
|
||||
privilege := model.ShortPrivilege{
|
||||
ID: fmt.Sprintf("%d", row.ID),
|
||||
PrivilegeID: row.Privilegeid.String,
|
||||
PrivilegeName: row.PrivilegeName.String,
|
||||
Amount: uint64(row.Amount.Int32),
|
||||
CreatedAt: row.CreatedAt.Time,
|
||||
}
|
||||
expiredRecords = append(expiredRecords, model.ExpiredPrivileges{
|
||||
UserID: row.UserID.String,
|
||||
Privilege: privilege,
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user