Files
certmanager/internal/logic/database.go
Олег Бородин cab7eac36e certmanager update
2024-08-10 14:46:26 +02:00

65 lines
1.2 KiB
Go

package logic
import (
"context"
"time"
"certmanager/internal/descriptor"
"certmanager/pkg/auxid"
)
func (lg *Logic) CleanDatabase(ctx context.Context) error {
var err error
err = lg.db.CleanDatabase(ctx)
if err != nil {
return err
}
return err
}
func (lg *Logic) SeedAccount(ctx context.Context) (int64, error) {
var err error
var userID int64
accountDescrs, err := lg.db.ListAccounts(ctx)
if err != nil {
return userID, err
}
if len(accountDescrs) == 0 {
now := time.Now().Format(time.RFC3339)
accountDescr := &descriptor.Account{
ID: auxid.GenID(),
Username: "certman",
Password: "certman",
Disabled: false,
CreatedAt: now,
UpdatedAt: now,
}
err = lg.db.InsertAccount(ctx, accountDescr)
if err != nil {
return userID, err
}
userID = accountDescr.ID
grantTypes := []string{
descriptor.GrantModifyServices,
descriptor.GrantModifyUssuers,
descriptor.GrantModifyUsers,
}
for _, grantType := range grantTypes {
grantDescr := &descriptor.Grant{
AccountID: accountDescr.ID,
Operation: grantType,
CreatedAt: now,
}
err = lg.db.InsertGrant(ctx, grantDescr)
if err != nil {
return userID, err
}
}
}
return userID, err
}