47 lines
1.8 KiB
Go
Raw Permalink Normal View History

2024-11-26 13:36:40 -08:00
package datastore
import (
"context"
"errors"
2024-11-26 18:30:58 -05:00
"git.itzana.me/strafesnet/maps-service/pkg/model"
2024-11-26 13:36:40 -08:00
)
var (
2024-12-12 17:29:20 -05:00
ErrNotExist = errors.New("resource does not exist")
ErroNoRowsAffected = errors.New("query did not affect any rows")
2024-11-26 13:36:40 -08:00
)
type Datastore interface {
2024-11-26 18:30:58 -05:00
Submissions() Submissions
2024-12-04 17:27:49 -08:00
Scripts() Scripts
ScriptPolicy() ScriptPolicy
2024-11-26 13:36:40 -08:00
}
2024-11-26 18:30:58 -05:00
type Submissions interface {
Get(ctx context.Context, id int64) (model.Submission, error)
2024-11-27 15:14:50 -08:00
GetList(ctx context.Context, id []int64) ([]model.Submission, error)
Create(ctx context.Context, smap model.Submission) (model.Submission, error)
Update(ctx context.Context, id int64, values OptionalMap) error
2024-11-27 18:57:42 -08:00
IfStatusThenUpdate(ctx context.Context, id int64, statuses []model.Status, values OptionalMap) error
2024-11-29 15:52:44 -08:00
IfStatusThenUpdateAndGet(ctx context.Context, id int64, statuses []model.Status, values OptionalMap) (model.Submission, error)
2024-11-27 15:14:50 -08:00
Delete(ctx context.Context, id int64) error
List(ctx context.Context, filters OptionalMap, page model.Page) ([]model.Submission, error)
2024-11-26 13:36:40 -08:00
}
2024-12-04 17:27:49 -08:00
type Scripts interface {
Get(ctx context.Context, id int64) (model.Script, error)
Create(ctx context.Context, smap model.Script) (model.Script, error)
Update(ctx context.Context, id int64, values OptionalMap) error
Delete(ctx context.Context, id int64) error
List(ctx context.Context, filters OptionalMap, page model.Page) ([]model.Script, error)
2024-12-04 17:27:49 -08:00
}
type ScriptPolicy interface {
Get(ctx context.Context, id int64) (model.ScriptPolicy, error)
2024-12-06 18:19:26 -08:00
GetFromHash(ctx context.Context, hash uint64) (model.ScriptPolicy, error)
2024-12-04 17:27:49 -08:00
Create(ctx context.Context, smap model.ScriptPolicy) (model.ScriptPolicy, error)
Update(ctx context.Context, id int64, values OptionalMap) error
Delete(ctx context.Context, id int64) error
List(ctx context.Context, filters OptionalMap, page model.Page) ([]model.ScriptPolicy, error)
2024-12-04 17:27:49 -08:00
}