117 lines
4.4 KiB
Go
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))
|
|
}
|