Conferir e publicar instituições pelo editor assistido com MFA nativo
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-11-10 21:09:18 +02:00
parent 5a5cc9e815
commit ef24cbdc92
12 changed files with 612 additions and 97 deletions
@@ -81,6 +81,25 @@ final class FundingProgrammeReferences
return $choices;
}
/** @return array<string,mixed> */
public function assisted(User $actor): array
{
app(FundingProgrammes::class)->guard($actor);
$package = $this->package();
$existing = DB::table('funding_programmes')->get(['id', 'code', 'version', 'published_version_id'])->keyBy('code');
$items = [];
foreach ($package['references'] as $code => $reference) {
$draft = $reference['draft'];
$row = $existing->get($code);
$items[] = ['code' => $code, 'title' => $draft['title'], 'summary' => $draft['summary'], 'categories' => $draft['institution_categories'] ?? [],
'types' => $draft['institution_types'] ?? [], 'status' => $draft['institution_status'] ?? 'reported', 'source_document' => $draft['source_document_name'] ?? null,
'source_sha256' => $draft['source_document_sha256'] ?? null, 'locations' => $draft['locations'] ?? [], 'contacts' => $draft['contacts'] ?? [],
'id' => $row?->id, 'published' => $row?->published_version_id !== null];
}
return ['dataset_hash' => $package['sha256'], 'items' => $items];
}
/** @return array{id:string,created:bool} */
public function prepare(User $actor, string $code, string $hash): array
{