diff --git a/libs/api/domains/signature-collection/src/lib/dto/signatureLookup.input.ts b/libs/api/domains/signature-collection/src/lib/dto/signatureLookup.input.ts new file mode 100644 index 000000000000..9ae4d3ea52f1 --- /dev/null +++ b/libs/api/domains/signature-collection/src/lib/dto/signatureLookup.input.ts @@ -0,0 +1,12 @@ +import { IsString } from 'class-validator' +import { Field, InputType } from '@nestjs/graphql' + +@InputType() +export class SignatureCollectionSignatureLookupInput { + @Field() + @IsString() + collectionId!: string + @Field() + @IsString() + nationalId!: string +} diff --git a/libs/api/domains/signature-collection/src/lib/signatureCollectionAdmin.resolver.ts b/libs/api/domains/signature-collection/src/lib/signatureCollectionAdmin.resolver.ts index c3f5970941a6..fc0a1a15c77b 100644 --- a/libs/api/domains/signature-collection/src/lib/signatureCollectionAdmin.resolver.ts +++ b/libs/api/domains/signature-collection/src/lib/signatureCollectionAdmin.resolver.ts @@ -32,10 +32,9 @@ import { SignatureCollectionSignatureIdInput } from './dto/signatureId.input' import { SignatureCollectionIdInput } from './dto/collectionId.input' import { SignatureCollectionCandidateIdInput } from './dto/candidateId.input' import { SignatureCollectionCanSignFromPaperInput } from './dto/canSignFromPaper.input' -import { ReasonKey } from '@island.is/clients/signature-collection' import { CanSignInfo } from './models/canSignInfo.model' import { SignatureCollectionSignatureUpdateInput } from './dto/signatureUpdate.input' -import { SignatureCollectionAreaInput } from './dto' +import { SignatureCollectionSignatureLookupInput } from './dto/signatureLookup.input' import { SignatureCollectionAreaSummaryReportInput } from './dto/areaSummaryReport.input' import { SignatureCollectionAreaSummaryReport } from './models/areaSummaryReport.model' @@ -267,6 +266,19 @@ export class SignatureCollectionAdminResolver { ) } + @Query(() => [SignatureCollectionSignature]) + @Scopes( + AdminPortalScope.signatureCollectionManage, + AdminPortalScope.signatureCollectionProcess, + ) + @Audit() + async signatureCollectionSignatureLookup( + @CurrentUser() user: User, + @Args('input') input: SignatureCollectionSignatureLookupInput, + ): Promise { + return this.signatureCollectionService.signatureLookup(user, input) + } + @Query(() => SignatureCollectionAreaSummaryReport) @Audit() async signatureCollectionAreaSummaryReport( diff --git a/libs/api/domains/signature-collection/src/lib/signatureCollectionAdmin.service.ts b/libs/api/domains/signature-collection/src/lib/signatureCollectionAdmin.service.ts index 8c4e53ae0bc6..c3f5a569d4ee 100644 --- a/libs/api/domains/signature-collection/src/lib/signatureCollectionAdmin.service.ts +++ b/libs/api/domains/signature-collection/src/lib/signatureCollectionAdmin.service.ts @@ -22,7 +22,7 @@ import { SignatureCollectionSlug } from './models/slug.model' import { SignatureCollectionListStatus } from './models/status.model' import { SignatureCollectionIdInput } from './dto/collectionId.input' import { SignatureCollectionSignatureUpdateInput } from './dto/signatureUpdate.input' -import { SignatureCollectionAreaInput } from './dto' +import { SignatureCollectionSignatureLookupInput } from './dto/signatureLookup.input' import { SignatureCollectionAreaSummaryReportInput } from './dto/areaSummaryReport.input' import { SignatureCollectionAreaSummaryReport } from './models/areaSummaryReport.model' @@ -199,6 +199,17 @@ export class SignatureCollectionAdminService { ) } + async signatureLookup( + user: User, + input: SignatureCollectionSignatureLookupInput, + ): Promise { + return await this.signatureCollectionClientService.signatureLookup( + user, + input.collectionId, + input.nationalId, + ) + } + async getAreaSummaryReport( input: SignatureCollectionAreaSummaryReportInput, user: User, diff --git a/libs/clients/signature-collection/src/lib/signature-collection-admin.service.ts b/libs/clients/signature-collection/src/lib/signature-collection-admin.service.ts index a14fe5eaa178..6c083138d43c 100644 --- a/libs/clients/signature-collection/src/lib/signature-collection-admin.service.ts +++ b/libs/clients/signature-collection/src/lib/signature-collection-admin.service.ts @@ -351,4 +351,27 @@ export class SignatureCollectionAdminClientService { return {} as AreaSummaryReport } } + + async signatureLookup( + auth: Auth, + collectionId: string, + nationalId: string, + ): Promise { + const lists = await this.getLists({ collectionId }, auth) + try { + const res = await this.getApiWithAuth( + this.adminApi, + auth, + ).adminMedmaelasofnunIDComparePost({ + iD: parseInt(collectionId, 10), + requestBody: [nationalId], + }) + return res.map(mapSignature).map((s) => ({ + ...s, + listTitle: lists.find((l) => l.id === s.listId)?.title, + })) + } catch { + return [] + } + } }