30 lines
1.1 KiB
Go
30 lines
1.1 KiB
Go
package crud
|
|
|
|
import "code.mrmelon54.com/melon/summer/pkg/claims/auth"
|
|
|
|
type Provider[T any] interface {
|
|
Find(claims *auth.AccessTokenClaims) ([]T, error)
|
|
Add(claims *auth.AccessTokenClaims, item T) (T, error)
|
|
Get(claims *auth.AccessTokenClaims, id string) (T, bool, error)
|
|
Put(claims *auth.AccessTokenClaims, id string, item T) error
|
|
Patch(claims *auth.AccessTokenClaims, id string, item T) error
|
|
Delete(claims *auth.AccessTokenClaims, id string) error
|
|
}
|
|
|
|
type CheckedProvider[T any] interface {
|
|
Find() ([]T, error)
|
|
Add(item T) (T, error)
|
|
Get(id string) (T, bool, error)
|
|
Put(id string, item T) error
|
|
Patch(id string, item T) error
|
|
Delete(id string) error
|
|
}
|
|
|
|
type fFind[T any] func(claims *auth.AccessTokenClaims) ([]T, error)
|
|
type fAdd[T any] func(claims *auth.AccessTokenClaims, item T) (T, error)
|
|
type fGet[T any] func(claims *auth.AccessTokenClaims, id string) (T, bool, error)
|
|
type fChange[T any] func(claims *auth.AccessTokenClaims, id string, item T) error
|
|
type fPut[T any] fChange[T]
|
|
type fPatch[T any] fChange[T]
|
|
type fDelete func(claims *auth.AccessTokenClaims, id string) error
|