Packages

Strictly typed Ada gRPC SDK for Elixir

Current section

Files

Jump to
ada_sdk lib ada_sdk operations.ex
Raw

lib/ada_sdk/operations.ex

defmodule AdaSdk.Ingest do
alias AdaSdk.Internal.Client
alias AdaSdk.Principal
@operations [
{:ingest, Ada.V1.IngestRequest, Ada.V1.IngestAcceptedResponse, :ingest},
{:estimate, Ada.V1.EstimateIngestRequest, Ada.V1.EstimateIngestResponse, :estimate_ingest},
{:set_me_entity, Ada.V1.SetMeEntityRequest, Ada.V1.SetMeEntityResponse, :set_me_entity},
{:get_me_entity, Ada.V1.GetMeEntityRequest, Ada.V1.GetMeEntityResponse, :get_me_entity}
]
for {name, request_module, response_module, rpc} <- @operations do
@spec unquote(name)(Principal.t(), unquote(request_module).t()) ::
{:ok, unquote(response_module).t()} | {:error, term()}
def unquote(name)(%Principal{} = principal, %unquote(request_module){} = request) do
Client.rpc(
principal.client,
Ada.V1.IngestService.Stub,
unquote(rpc),
%{request | principal_id: principal.id}
)
end
end
end
defmodule AdaSdk.Recall do
alias AdaSdk.Internal.Client
alias AdaSdk.Principal
@operations [
{:recall, Ada.V1.RecallRequest, Ada.V1.RecallResponse, :recall},
{:entity_dossier, Ada.V1.EntityDossierRequest, Ada.V1.EntityDossierResponse, :entity_dossier},
{:timeline, Ada.V1.TimelineRequest, Ada.V1.TimelineResponse, :timeline},
{:contradictions, Ada.V1.ContradictionsRequest, Ada.V1.ContradictionsResponse,
:contradictions},
{:community_dossier, Ada.V1.CommunityDossierRequest, Ada.V1.CommunityDossierResponse,
:community_dossier},
{:change_recall, Ada.V1.ChangeRecallRequest, Ada.V1.ChangeRecallResponse, :change_recall},
{:relationship_dossier, Ada.V1.RelationshipDossierRequest, Ada.V1.RelationshipDossierResponse,
:relationship_dossier}
]
for {name, request_module, response_module, rpc} <- @operations do
@spec unquote(name)(Principal.t(), unquote(request_module).t()) ::
{:ok, unquote(response_module).t()} | {:error, term()}
def unquote(name)(%Principal{} = principal, %unquote(request_module){} = request) do
Client.rpc(
principal.client,
Ada.V1.RecallService.Stub,
unquote(rpc),
%{request | principal_id: principal.id}
)
end
end
end
defmodule AdaSdk.Documents do
alias AdaSdk.Internal.Client
alias AdaSdk.Principal
@spec get_status(Principal.t(), Ada.V1.GetDocumentStatusRequest.t()) ::
{:ok, Ada.V1.GetDocumentStatusResponse.t()} | {:error, term()}
def get_status(%Principal{} = principal, %Ada.V1.GetDocumentStatusRequest{} = request) do
Client.rpc(
principal.client,
Ada.V1.IngestService.Stub,
:get_document_status,
%{request | principal_id: principal.id}
)
end
end
defmodule AdaSdk.Data do
alias AdaSdk.Internal.Client
alias AdaSdk.Principal
@operations [
{:list_entities, Ada.V1.ListEntitiesRequest, Ada.V1.ListEntitiesResponse},
{:list_atoms, Ada.V1.ListAtomsRequest, Ada.V1.ListAtomsResponse},
{:list_relations, Ada.V1.ListRelationsRequest, Ada.V1.ListRelationsResponse},
{:list_commitments, Ada.V1.ListCommitmentsRequest, Ada.V1.ListCommitmentsResponse},
{:list_decisions, Ada.V1.ListDecisionsRequest, Ada.V1.ListDecisionsResponse},
{:list_action_items, Ada.V1.ListActionItemsRequest, Ada.V1.ListActionItemsResponse},
{:list_contradictions, Ada.V1.ListContradictionsRequest, Ada.V1.ListContradictionsResponse},
{:list_observations, Ada.V1.ListObservationsRequest, Ada.V1.ListObservationsResponse},
{:list_documents, Ada.V1.ListDocumentsRequest, Ada.V1.ListDocumentsResponse},
{:list_events, Ada.V1.ListEventsRequest, Ada.V1.ListEventsResponse},
{:list_meetings, Ada.V1.ListMeetingsRequest, Ada.V1.ListMeetingsResponse},
{:list_intentions, Ada.V1.ListIntentionsRequest, Ada.V1.ListIntentionsResponse},
{:list_priorities, Ada.V1.ListPrioritiesRequest, Ada.V1.ListPrioritiesResponse},
{:list_ingest_jobs, Ada.V1.ListIngestJobsRequest, Ada.V1.ListIngestJobsResponse},
{:get_usage_report, Ada.V1.GetUsageReportRequest, Ada.V1.GetUsageReportResponse},
{:list_usage_reports, Ada.V1.ListUsageReportsRequest, Ada.V1.ListUsageReportsResponse},
{:get_usage_event, Ada.V1.GetUsageEventRequest, Ada.V1.GetUsageEventResponse},
{:list_usage_events, Ada.V1.ListUsageEventsRequest, Ada.V1.ListUsageEventsResponse},
{:list_communities, Ada.V1.ListCommunitiesRequest, Ada.V1.ListCommunitiesResponse},
{:list_recall_runs, Ada.V1.ListRecallRunsRequest, Ada.V1.ListRecallRunsResponse},
{:get_projection_status, Ada.V1.GetProjectionStatusRequest,
Ada.V1.GetProjectionStatusResponse},
{:delete, Ada.V1.DeleteDataRequest, Ada.V1.DeleteDataResponse}
]
for {name, request_module, response_module} <- @operations do
rpc = if name == :delete, do: :delete_data, else: name
@spec unquote(name)(Principal.t(), unquote(request_module).t()) ::
{:ok, unquote(response_module).t()} | {:error, term()}
def unquote(name)(%Principal{} = principal, %unquote(request_module){} = request) do
Client.rpc(
principal.client,
Ada.V1.DataService.Stub,
unquote(rpc),
%{request | principal_id: principal.id}
)
end
end
end
defmodule AdaSdk.Summary do
alias AdaSdk.Internal.Client
alias AdaSdk.Principal
@operations [
{:get_overview, Ada.V1.GetSummaryOverviewRequest, Ada.V1.GetSummaryOverviewResponse,
:get_summary_overview},
{:list_principals, Ada.V1.ListSummaryPrincipalsRequest, Ada.V1.ListSummaryPrincipalsResponse,
:list_summary_principals},
{:list_activity, Ada.V1.ListSummaryActivityRequest, Ada.V1.ListSummaryActivityResponse,
:list_summary_activity},
{:get_principal_overview, Ada.V1.GetPrincipalOverviewRequest,
Ada.V1.GetPrincipalOverviewResponse, :get_principal_overview},
{:get_knowledge, Ada.V1.GetPrincipalKnowledgeSummaryRequest,
Ada.V1.GetPrincipalKnowledgeSummaryResponse, :get_principal_knowledge_summary},
{:get_sources, Ada.V1.GetPrincipalSourcesSummaryRequest,
Ada.V1.GetPrincipalSourcesSummaryResponse, :get_principal_sources_summary},
{:get_now, Ada.V1.GetPrincipalNowRequest, Ada.V1.GetPrincipalNowResponse, :get_principal_now}
]
for {name, request_module, response_module, rpc} <- @operations do
@spec unquote(name)(Principal.t(), unquote(request_module).t()) ::
{:ok, unquote(response_module).t()} | {:error, term()}
def unquote(name)(%Principal{} = principal, %unquote(request_module){} = request) do
Client.rpc(
principal.client,
Ada.V1.SummaryService.Stub,
unquote(rpc),
%{request | principal_id: principal.id}
)
end
end
end