53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package accoper
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"mbase/pkg/auxtool"
|
|
"mbase/pkg/descr"
|
|
)
|
|
|
|
// UpdateGrant
|
|
type UpdateGrantParams struct {
|
|
GrantID string
|
|
NewPattern string
|
|
}
|
|
type UpdateGrantResult struct{}
|
|
|
|
func (oper *Operator) UpdateGrant(ctx context.Context, operatorID string, params *UpdateGrantParams) (*UpdateGrantResult, error) {
|
|
var err error
|
|
res := &UpdateGrantResult{}
|
|
|
|
if params.NewPattern == "" {
|
|
err := fmt.Errorf("Empty newPattern parameter")
|
|
return res, err
|
|
}
|
|
if params.GrantID == "" {
|
|
err := fmt.Errorf("Empty grantId parameter")
|
|
return res, err
|
|
}
|
|
var grantDescr *descr.Grant
|
|
var grantExists bool
|
|
|
|
grantExists, grantDescr, err = oper.mdb.GetGrantByID(ctx, params.GrantID)
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
if !grantExists {
|
|
err := fmt.Errorf("Grant with ID %s dont exists", params.GrantID)
|
|
return res, err
|
|
}
|
|
now := auxtool.TimeNow()
|
|
if params.NewPattern != "" {
|
|
grantDescr.UpdatedAt = now
|
|
grantDescr.UpdatedBy = operatorID
|
|
grantDescr.Pattern = params.NewPattern
|
|
}
|
|
err = oper.mdb.UpdateGrantByID(ctx, grantDescr.ID, grantDescr)
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
return res, err
|
|
}
|