Files
maps-service/pkg/service/mapfixes.go
Rhys Lloyd 51ba05df69
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
backend: remove mapfixes migrate endpoint
2025-08-15 23:20:08 -07:00

117 lines
4.4 KiB
Go

package service
import (
"context"
"git.itzana.me/strafesnet/maps-service/pkg/datastore"
"git.itzana.me/strafesnet/maps-service/pkg/model"
)
type MapfixUpdate datastore.OptionalMap
func NewMapfixUpdate() MapfixUpdate {
update := datastore.Optional()
return MapfixUpdate(update)
}
func (update MapfixUpdate) SetDisplayName(display_name string) {
datastore.OptionalMap(update).Add("display_name", display_name)
}
func (update MapfixUpdate) SetCreator(creator string) {
datastore.OptionalMap(update).Add("creator", creator)
}
func (update MapfixUpdate) SetGameID(game_id uint32) {
datastore.OptionalMap(update).Add("game_id", game_id)
}
func (update MapfixUpdate) SetSubmitter(submitter uint64) {
datastore.OptionalMap(update).Add("submitter", submitter)
}
func (update MapfixUpdate) SetAssetID(asset_id uint64) {
datastore.OptionalMap(update).Add("asset_id", asset_id)
}
func (update MapfixUpdate) SetAssetVersion(asset_version uint64) {
datastore.OptionalMap(update).Add("asset_version", asset_version)
}
func (update MapfixUpdate) SetValidatedAssetID(validated_asset_id uint64) {
datastore.OptionalMap(update).Add("validated_asset_id", validated_asset_id)
}
func (update MapfixUpdate) SetValidatedAssetVersion(validated_asset_version uint64) {
datastore.OptionalMap(update).Add("validated_asset_version", validated_asset_version)
}
func (update MapfixUpdate) SetCompleted(completed bool) {
datastore.OptionalMap(update).Add("completed", completed)
}
func (update MapfixUpdate) SetTargetAssetID(target_asset_id uint64) {
datastore.OptionalMap(update).Add("target_asset_id", target_asset_id)
}
func (update MapfixUpdate) SetStatusID(status_id model.MapfixStatus) {
datastore.OptionalMap(update).Add("status_id", status_id)
}
func (update MapfixUpdate) SetDescription(description string) {
datastore.OptionalMap(update).Add("description", description)
}
type MapfixFilter datastore.OptionalMap
func NewMapfixFilter(
) MapfixFilter {
filter := datastore.Optional()
return MapfixFilter(filter)
}
func (update MapfixFilter) SetDisplayName(display_name string) {
datastore.OptionalMap(update).Add("display_name", display_name)
}
func (update MapfixFilter) SetCreator(creator string) {
datastore.OptionalMap(update).Add("creator", creator)
}
func (update MapfixFilter) SetGameID(game_id uint32) {
datastore.OptionalMap(update).Add("game_id", game_id)
}
func (update MapfixFilter) SetSubmitter(submitter uint64) {
datastore.OptionalMap(update).Add("submitter", submitter)
}
func (update MapfixFilter) SetAssetID(asset_id uint64) {
datastore.OptionalMap(update).Add("asset_id", asset_id)
}
func (update MapfixFilter) SetAssetVersion(asset_version uint64) {
datastore.OptionalMap(update).Add("asset_version", asset_version)
}
func (update MapfixFilter) SetTargetAssetID(target_asset_id uint64) {
datastore.OptionalMap(update).Add("target_asset_id", target_asset_id)
}
func (update MapfixFilter) SetStatuses(statuses []model.MapfixStatus) {
datastore.OptionalMap(update).Add("status_id", statuses)
}
func (svc *Service) CreateMapfix(ctx context.Context, script model.Mapfix) (model.Mapfix, error) {
return svc.db.Mapfixes().Create(ctx, script)
}
func (svc *Service) ListMapfixes(ctx context.Context, filter MapfixFilter, page model.Page, sort datastore.ListSort) ([]model.Mapfix, error) {
return svc.db.Mapfixes().List(ctx, datastore.OptionalMap(filter), page, sort)
}
func (svc *Service) ListMapfixesWithTotal(ctx context.Context, filter MapfixFilter, page model.Page, sort datastore.ListSort) (int64, []model.Mapfix, error) {
return svc.db.Mapfixes().ListWithTotal(ctx, datastore.OptionalMap(filter), page, sort)
}
func (svc *Service) DeleteMapfix(ctx context.Context, id int64) error {
return svc.db.Mapfixes().Delete(ctx, id)
}
func (svc *Service) GetMapfix(ctx context.Context, id int64) (model.Mapfix, error) {
return svc.db.Mapfixes().Get(ctx, id)
}
func (svc *Service) UpdateMapfix(ctx context.Context, id int64, pmap MapfixUpdate) error {
return svc.db.Mapfixes().Update(ctx, id, datastore.OptionalMap(pmap))
}
func (svc *Service) UpdateMapfixIfStatus(ctx context.Context, id int64, statuses []model.MapfixStatus, pmap MapfixUpdate) error {
return svc.db.Mapfixes().IfStatusThenUpdate(ctx, id, statuses, datastore.OptionalMap(pmap))
}
func (svc *Service) UpdateAndGetMapfixIfStatus(ctx context.Context, id int64, statuses []model.MapfixStatus, pmap MapfixUpdate) (model.Mapfix, error) {
return svc.db.Mapfixes().IfStatusThenUpdateAndGet(ctx, id, statuses, datastore.OptionalMap(pmap))
}