54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
|
|
"database/sql"
|
|
|
|
imcdb "git.workaround.org/chaas/imc/backend/internal/db/sqlc"
|
|
)
|
|
|
|
func (d *DB) GetAllMailUsers(ctx context.Context) ([]imcdb.VirtualUser, error) {
|
|
return d.Queries.GetAllMailUsers(ctx)
|
|
}
|
|
|
|
func (d *DB) GetUsersByDomain(ctx context.Context, domainID uint32) ([]imcdb.VirtualUser, error) {
|
|
return d.Queries.GetUsersByDomain(ctx, domainID)
|
|
}
|
|
|
|
func (d *DB) GetUserByID(ctx context.Context, id uint32) (imcdb.VirtualUser, error) {
|
|
return d.Queries.GetUserByID(ctx, id)
|
|
}
|
|
|
|
func (d *DB) GetUserByEmail(ctx context.Context, email string) (imcdb.VirtualUser, error) {
|
|
return d.Queries.GetUserByEmail(ctx, email)
|
|
}
|
|
|
|
func (d *DB) CreateUser(ctx context.Context, domainID uint32, email, passwordHash string, quota int64) error {
|
|
quotaNull := sql.NullInt64{Int64: quota, Valid: quota > 0}
|
|
return d.Queries.CreateUser(ctx, imcdb.CreateUserParams{
|
|
DomainID: domainID,
|
|
Email: email,
|
|
Password: passwordHash,
|
|
Quota: quotaNull,
|
|
})
|
|
}
|
|
|
|
func (d *DB) UpdateUserPassword(ctx context.Context, id uint32, passwordHash string) error {
|
|
return d.Queries.UpdateUserPassword(ctx, imcdb.UpdateUserPasswordParams{
|
|
Password: passwordHash,
|
|
ID: id,
|
|
})
|
|
}
|
|
|
|
func (d *DB) UpdateUserQuota(ctx context.Context, id uint32, quota int64) error {
|
|
quotaNull := sql.NullInt64{Int64: quota, Valid: quota > 0}
|
|
return d.Queries.UpdateUserQuota(ctx, imcdb.UpdateUserQuotaParams{
|
|
Quota: quotaNull,
|
|
ID: id,
|
|
})
|
|
}
|
|
|
|
func (d *DB) DeleteUser(ctx context.Context, id uint32) error {
|
|
return d.Queries.DeleteUser(ctx, id)
|
|
}
|