This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.
summer-utils/api/crud/provider.go
2023-04-16 11:56:17 +01:00

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