42 lines
837 B
Go
42 lines
837 B
Go
package accoper
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"mstore/pkg/descr"
|
|
)
|
|
|
|
// DeleteGrant
|
|
type DeleteGrantParams struct {
|
|
GrantID string `json:"grantId"`
|
|
}
|
|
type DeleteGrantResult struct{}
|
|
|
|
func (oper *Operator) DeleteGrant(ctx context.Context, operatorID string, params *DeleteGrantParams) (*DeleteGrantResult, error) {
|
|
var err error
|
|
res := &DeleteGrantResult{}
|
|
|
|
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
|
|
}
|
|
err = oper.mdb.DeleteGrantByID(ctx, grantDescr.ID)
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
return res, err
|
|
}
|