Files
maps-service/pkg/service/submissions.go
Rhys Lloyd dde6f3ebdb
All checks were successful
continuous-integration/drone/push Build is passing
submissions: rename services
2025-07-17 19:07:59 -07:00

121 lines
4.8 KiB
Go

package service
import (
"context"
"git.itzana.me/strafesnet/maps-service/pkg/datastore"
"git.itzana.me/strafesnet/maps-service/pkg/model"
)
type SubmissionUpdate datastore.OptionalMap
func NewSubmissionUpdate() SubmissionUpdate {
update := datastore.Optional()
return SubmissionUpdate(update)
}
func (update SubmissionUpdate) SetDisplayName(display_name string) {
datastore.OptionalMap(update).Add("display_name", display_name)
}
func (update SubmissionUpdate) SetCreator(creator string) {
datastore.OptionalMap(update).Add("creator", creator)
}
func (update SubmissionUpdate) SetGameID(game_id uint32) {
datastore.OptionalMap(update).Add("game_id", game_id)
}
func (update SubmissionUpdate) SetSubmitter(submitter uint64) {
datastore.OptionalMap(update).Add("submitter", submitter)
}
func (update SubmissionUpdate) SetAssetID(asset_id uint64) {
datastore.OptionalMap(update).Add("asset_id", asset_id)
}
func (update SubmissionUpdate) SetAssetVersion(asset_version uint64) {
datastore.OptionalMap(update).Add("asset_version", asset_version)
}
func (update SubmissionUpdate) SetValidatedAssetID(validated_asset_id uint64) {
datastore.OptionalMap(update).Add("validated_asset_id", validated_asset_id)
}
func (update SubmissionUpdate) SetValidatedAssetVersion(validated_asset_version uint64) {
datastore.OptionalMap(update).Add("validated_asset_version", validated_asset_version)
}
func (update SubmissionUpdate) SetCompleted(completed bool) {
datastore.OptionalMap(update).Add("completed", completed)
}
func (update SubmissionUpdate) SetUploadedAssetID(uploaded_asset_id uint64) {
datastore.OptionalMap(update).Add("uploaded_asset_id", uploaded_asset_id)
}
func (update SubmissionUpdate) SetStatusID(status_id model.SubmissionStatus) {
datastore.OptionalMap(update).Add("status_id", status_id)
}
func (update SubmissionUpdate) SetDescription(description string) {
datastore.OptionalMap(update).Add("description", description)
}
type SubmissionFilter datastore.OptionalMap
func NewSubmissionFilter(
) SubmissionFilter {
filter := datastore.Optional()
return SubmissionFilter(filter)
}
func (update SubmissionFilter) SetDisplayName(display_name string) {
datastore.OptionalMap(update).Add("display_name", display_name)
}
func (update SubmissionFilter) SetCreator(creator string) {
datastore.OptionalMap(update).Add("creator", creator)
}
func (update SubmissionFilter) SetGameID(game_id uint32) {
datastore.OptionalMap(update).Add("game_id", game_id)
}
func (update SubmissionFilter) SetSubmitter(submitter uint64) {
datastore.OptionalMap(update).Add("submitter", submitter)
}
func (update SubmissionFilter) SetAssetID(asset_id uint64) {
datastore.OptionalMap(update).Add("asset_id", asset_id)
}
func (update SubmissionFilter) SetAssetVersion(asset_version uint64) {
datastore.OptionalMap(update).Add("asset_version", asset_version)
}
func (update SubmissionFilter) SetUploadedAssetID(uploaded_asset_id uint64) {
datastore.OptionalMap(update).Add("uploaded_asset_id", uploaded_asset_id)
}
func (update SubmissionFilter) SetStatuses(statuses []model.SubmissionStatus) {
datastore.OptionalMap(update).Add("status_id", statuses)
}
func (svc *Service) CreateSubmission(ctx context.Context, script model.Submission) (model.Submission, error) {
return svc.db.Submissions().Create(ctx, script)
}
func (svc *Service) ListSubmissions(ctx context.Context, filter SubmissionFilter, page model.Page, sort datastore.ListSort) ([]model.Submission, error) {
return svc.db.Submissions().List(ctx, datastore.OptionalMap(filter), page, sort)
}
func (svc *Service) ListSubmissionsWithTotal(ctx context.Context, filter SubmissionFilter, page model.Page, sort datastore.ListSort) (int64, []model.Submission, error) {
return svc.db.Submissions().ListWithTotal(ctx, datastore.OptionalMap(filter), page, sort)
}
func (svc *Service) DeleteSubmission(ctx context.Context, id int64) error {
return svc.db.Submissions().Delete(ctx, id)
}
func (svc *Service) GetSubmission(ctx context.Context, id int64) (model.Submission, error) {
return svc.db.Submissions().Get(ctx, id)
}
func (svc *Service) GetSubmissionList(ctx context.Context, ids []int64) ([]model.Submission, error) {
return svc.db.Submissions().GetList(ctx, ids)
}
func (svc *Service) UpdateSubmission(ctx context.Context, id int64, pmap SubmissionUpdate) error {
return svc.db.Submissions().Update(ctx, id, datastore.OptionalMap(pmap))
}
func (svc *Service) UpdateSubmissionIfStatus(ctx context.Context, id int64, statuses []model.SubmissionStatus, pmap SubmissionUpdate) error {
return svc.db.Submissions().IfStatusThenUpdate(ctx, id, statuses, datastore.OptionalMap(pmap))
}
func (svc *Service) UpdateAndGetSubmissionIfStatus(ctx context.Context, id int64, statuses []model.SubmissionStatus, pmap SubmissionUpdate) (model.Submission, error) {
return svc.db.Submissions().IfStatusThenUpdateAndGet(ctx, id, statuses, datastore.OptionalMap(pmap))
}