RecommendationSubmissionService
in package
uses
RecommendationMutationSupportTrait
Table of Contents
Constants
- EVENT_NAME : mixed = 'Awards.RecommendationSubmitted'
Properties
Methods
- __construct() : mixed
- Inject the submission state log writer.
- submitAuthenticated() : array<string, mixed>
- submitPublic() : array<string, mixed>
- applyCourtPreferenceDefaults() : void
- Apply legacy fallback defaults for court-preference fields.
- buildOutputData() : array<string, mixed>
- extractGatheringIds() : array<string|int, int>
- formatGivenDate() : string|null
- Format stored "given" timestamps back to a stable UTC date-only value.
- hydrateMemberDefaults() : void
- Hydrate branch and court-preference defaults from the selected member.
- initializeSubmissionState() : void
- Apply the legacy initial status/state pair used by recommendation submission.
- normalizeCheckboxValue() : bool
- Normalize checkbox-style request values to booleans.
- normalizeSpecialty() : void
- Convert the placeholder specialty option into a null database value.
-
resolveMemberPublicId()
: array{success: bool, data: array
, errorCode: ?string, message: ?string} - submit() : array<string, mixed>
Constants
EVENT_NAME
public
mixed
EVENT_NAME
= 'Awards.RecommendationSubmitted'
Properties
$stateLogService
private
RecommendationStateLogService
$stateLogService
Methods
__construct()
Inject the submission state log writer.
public
__construct([RecommendationStateLogService|null $stateLogService = null ]) : mixed
Parameters
- $stateLogService : RecommendationStateLogService|null = null
submitAuthenticated()
public
submitAuthenticated(RecommendationsTable $recommendationsTable, array<string, mixed> $data, array{id: int, sca_name: string, email_address: string, phone_number: string|null} $requesterContext) : array<string, mixed>
Parameters
- $recommendationsTable : RecommendationsTable
- $data : array<string, mixed>
- $requesterContext : array{id: int, sca_name: string, email_address: string, phone_number: string|null}
Return values
array<string, mixed>submitPublic()
public
submitPublic(RecommendationsTable $recommendationsTable, array<string, mixed> $data) : array<string, mixed>
Parameters
- $recommendationsTable : RecommendationsTable
- $data : array<string, mixed>
Return values
array<string, mixed>applyCourtPreferenceDefaults()
Apply legacy fallback defaults for court-preference fields.
private
applyCourtPreferenceDefaults(Recommendation $recommendation) : void
Parameters
- $recommendation : Recommendation
-
Recommendation being normalized.
buildOutputData()
private
buildOutputData(RecommendationsTable $recommendationsTable, Recommendation $recommendation[, array<string, mixed> $extra = [] ]) : array<string, mixed>
Parameters
- $recommendationsTable : RecommendationsTable
- $recommendation : Recommendation
- $extra : array<string, mixed> = []
Return values
array<string, mixed>extractGatheringIds()
private
extractGatheringIds(Recommendation $recommendation) : array<string|int, int>
Parameters
- $recommendation : Recommendation
Return values
array<string|int, int>formatGivenDate()
Format stored "given" timestamps back to a stable UTC date-only value.
private
formatGivenDate(DateTimeInterface|null $given) : string|null
Parameters
- $given : DateTimeInterface|null
-
Stored given timestamp.
Return values
string|nullhydrateMemberDefaults()
Hydrate branch and court-preference defaults from the selected member.
private
hydrateMemberDefaults(RecommendationsTable $recommendationsTable, Recommendation $recommendation) : void
Parameters
- $recommendationsTable : RecommendationsTable
-
Recommendations table.
- $recommendation : Recommendation
-
Recommendation being normalized.
initializeSubmissionState()
Apply the legacy initial status/state pair used by recommendation submission.
private
initializeSubmissionState(Recommendation $recommendation) : void
Parameters
- $recommendation : Recommendation
-
Recommendation being initialized.
normalizeCheckboxValue()
Normalize checkbox-style request values to booleans.
private
normalizeCheckboxValue(mixed $value) : bool
Parameters
- $value : mixed
-
Request value to normalize.
Return values
boolnormalizeSpecialty()
Convert the placeholder specialty option into a null database value.
private
normalizeSpecialty(Recommendation $recommendation) : void
Parameters
- $recommendation : Recommendation
-
Recommendation being normalized.
resolveMemberPublicId()
private
resolveMemberPublicId(RecommendationsTable $recommendationsTable, array<string, mixed> $data) : array{success: bool, data: array, errorCode: ?string, message: ?string}
Parameters
- $recommendationsTable : RecommendationsTable
- $data : array<string, mixed>
Return values
array{success: bool, data: arraysubmit()
private
submit(RecommendationsTable $recommendationsTable, array<string, mixed> $data, callable(Recommendation): void $hydrateRequester, string $logPrefix) : array<string, mixed>
Parameters
- $recommendationsTable : RecommendationsTable
- $data : array<string, mixed>
- $hydrateRequester : callable(Recommendation): void
- $logPrefix : string