package service_internal

import (
	"context"

	"git.itzana.me/strafesnet/maps-service/pkg/datastore"
	internal "git.itzana.me/strafesnet/maps-service/pkg/internal"
	"git.itzana.me/strafesnet/maps-service/pkg/model"
)

// ActionOperationFailed implements actionOperationFailed operation.
//
// Fail the specified OperationID with a StatusMessage.
//
// POST /operations/{OperationID}/failed
func (svc *Service) ActionOperationFailed(ctx context.Context, params internal.ActionOperationFailedParams) (error) {
	pmap := datastore.Optional()
	pmap.Add("status_id", model.OperationStatusFailed)
	pmap.Add("status_message", params.StatusMessage)
	return svc.DB.Operations().Update(ctx, params.OperationID, pmap)
}