65 lines
1.2 KiB
Go
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 accountID int64
|
|
accountDescrs, err := lg.db.ListAccounts(ctx)
|
|
if err != nil {
|
|
return accountID, 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 accountID, err
|
|
}
|
|
accountID = 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 accountID, err
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return accountID, err
|
|
|
|
}
|