feat(backend): add communication, tester, admin and middleman modules
Implement step 17 modules: threads/messages, notifications with automation (submission.created, idea.created, grant_call.opened), innovation test feedback, admin panel (submissions, verify, metrics, grant call status), Middleman adaptation and partnerships. Split multi-type files into one type per file and replace object-valued dictionaries with string-valued maps in data contracts (migrations 0006/0007).
This commit is contained in:
@@ -93,6 +93,19 @@ public sealed class IdeaService : IIdeaService
|
||||
return result;
|
||||
}
|
||||
|
||||
public async Task<IReadOnlyList<string>> ListDistinctAuthorIdsAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
var response = await _client.RawQuery(
|
||||
"SELECT type::string(author) AS id FROM idea;",
|
||||
new Dictionary<string, object?>(),
|
||||
cancellationToken);
|
||||
response.EnsureAllOks();
|
||||
|
||||
var rows = response.GetValue<List<IdRow>>(0) ?? [];
|
||||
|
||||
return rows.Select(row => row.Id).Distinct(StringComparer.Ordinal).ToList();
|
||||
}
|
||||
|
||||
public async Task<IdeaResponse?> UpdateAsync(
|
||||
string ideaId,
|
||||
UpdateIdeaRequest request,
|
||||
|
||||
Reference in New Issue
Block a user