Files
dev-service/pkg/datastore/datastore.go
itzaname 4cfa2c7fff
All checks were successful
continuous-integration/drone/push Build is passing
Add user search
2026-02-25 23:36:53 -05:00

61 lines
2.7 KiB
Go

package datastore
import (
"context"
"errors"
"git.itzana.me/StrafesNET/dev-service/pkg/model"
)
var ErrNotExists = errors.New("resource does not exist")
const (
DefaultPageLimit = 10
)
type Datastore interface {
// Permission
CreatePermission(ctx context.Context, permission *model.Permission) error
GetPermission(ctx context.Context, id uint32) (*model.Permission, error)
GetAllPermissions(ctx context.Context) ([]model.Permission, error)
UpdatePermission(ctx context.Context, permission *model.Permission) error
DeletePermission(ctx context.Context, id uint32) error
GetDefaultPermissions(ctx context.Context) ([]model.Permission, error)
SetPermissionAsDefault(ctx context.Context, id uint32, isDefault bool) error
// Rate Limit
CreateRateLimit(ctx context.Context, rl *model.RateLimit) error
GetRateLimit(ctx context.Context, id uint32) (*model.RateLimit, error)
GetAllRateLimits(ctx context.Context) ([]model.RateLimit, error)
UpdateRateLimit(ctx context.Context, rl *model.RateLimit) error
DeleteRateLimit(ctx context.Context, id uint32) error
// User
CreateUser(ctx context.Context, user *model.User) error
GetUser(ctx context.Context, id uint64) (*model.User, error)
GetAllUsers(ctx context.Context, pagination *CursorPagination) ([]model.User, error)
SearchUsers(ctx context.Context, query string) ([]model.User, error)
UpdateUser(ctx context.Context, user *model.User) error
DeleteUser(ctx context.Context, id uint64) error
AddPermissionToUser(ctx context.Context, userID uint64, permissionID uint32) error
RemovePermissionFromUser(ctx context.Context, userID uint64, permissionID uint32) error
// Application
CreateApplication(ctx context.Context, app *model.Application) error
GetApplication(ctx context.Context, id uint32) (*model.Application, error)
GetApplicationByAPIKey(ctx context.Context, apiKey string) (*model.Application, error)
GetAllApplications(ctx context.Context) ([]model.Application, error)
GetApplicationsForUser(ctx context.Context, userID uint64) ([]model.Application, error)
UpdateApplication(ctx context.Context, app *model.Application) error
DeleteApplication(ctx context.Context, id uint32) error
AddPermissionToApplication(ctx context.Context, appID, permissionID uint32) error
RemovePermissionFromApplication(ctx context.Context, appID, permissionID uint32) error
GetApplicationCountForUser(ctx context.Context, userID uint64) (uint32, error)
// Request
CreateRequest(ctx context.Context, req *model.Request) error
GetRequest(ctx context.Context, id uint32) (*model.Request, error)
GetAllRequests(ctx context.Context) ([]model.Request, error)
UpdateRequest(ctx context.Context, req *model.Request) error
DeleteRequest(ctx context.Context, id uint32) error
}