Callbacks service docs updated
This commit is contained in:
60
api/pkg/db/internal/mongo/callbacksdb/secretref.go
Normal file
60
api/pkg/db/internal/mongo/callbacksdb/secretref.go
Normal file
@@ -0,0 +1,60 @@
|
||||
package callbacksdb
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/tech/sendico/pkg/db/repository"
|
||||
"github.com/tech/sendico/pkg/merrors"
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
"go.mongodb.org/mongo-driver/v2/bson"
|
||||
)
|
||||
|
||||
func (db *CallbacksDB) GetSigningSecretRef(ctx context.Context, accountRef, callbackRef bson.ObjectID) (string, error) {
|
||||
if callbackRef.IsZero() {
|
||||
return "", merrors.InvalidArgument("callback reference is required", "callbackRef")
|
||||
}
|
||||
|
||||
// Enforce read permissions through the public callback object first.
|
||||
var callback model.Callback
|
||||
if err := db.Get(ctx, accountRef, callbackRef, &callback); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
internal := &callbackInternal{}
|
||||
if err := db.DBImp.Repository.Get(ctx, callbackRef, internal); err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return strings.TrimSpace(internal.SecretRef), nil
|
||||
}
|
||||
|
||||
func (db *CallbacksDB) SetSigningSecretRef(ctx context.Context, accountRef, callbackRef bson.ObjectID, secretRef string) error {
|
||||
if callbackRef.IsZero() {
|
||||
return merrors.InvalidArgument("callback reference is required", "callbackRef")
|
||||
}
|
||||
value := strings.TrimSpace(secretRef)
|
||||
if value == "" {
|
||||
return merrors.InvalidArgument("secret reference is required", "secretRef")
|
||||
}
|
||||
|
||||
return db.Patch(
|
||||
ctx,
|
||||
accountRef,
|
||||
callbackRef,
|
||||
repository.Patch().Set(repository.Field("secretRef"), value),
|
||||
)
|
||||
}
|
||||
|
||||
func (db *CallbacksDB) ClearSigningSecretRef(ctx context.Context, accountRef, callbackRef bson.ObjectID) error {
|
||||
if callbackRef.IsZero() {
|
||||
return merrors.InvalidArgument("callback reference is required", "callbackRef")
|
||||
}
|
||||
|
||||
return db.Patch(
|
||||
ctx,
|
||||
accountRef,
|
||||
callbackRef,
|
||||
repository.Patch().Unset(repository.Field("secretRef")),
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user