Skip to content

Sp-11942 - update methods #65

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Oct 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ const response = await sdk.matchingApi.match({

Parsing results:
```js
for (const result of response.results) {
console.log(`pair(${result.firstIndex},${result.secondIndex}) similarity: ${result.similarity}`)
for (const result of response.results) {
console.log(`pair(${result.firstIndex},${result.secondIndex}) similarity: ${result.similarity}`)
}
```

Expand All @@ -58,4 +58,4 @@ Module system
* ES6 module system

Definitions
* TypeScript's definitions should be automatically resolved via `package.json`. ([Reference](http://www.typescriptlang.org/docs/handbook/typings-for-npm-packages.html))
* TypeScript's definitions should be automatically resolved via `package.json`. ([Reference](https://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html#including-declarations-in-your-npm-package))
14 changes: 14 additions & 0 deletions src/ext/diagnostics-api.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { DiagnosticsApi as GenDiagnosticsApi } from "../api/diagnostics-api";
import {AxiosRequestConfig, AxiosInstance} from "axios";
import {Configuration} from "../configuration.js";

export class DiagnosticsApi {
private superClass: GenDiagnosticsApi;
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
this.superClass = new GenDiagnosticsApi(configuration, basePath, axios);
}
async readiness(xRequestID?: string, options?: AxiosRequestConfig): Promise<Record<string, unknown>> {
const response = await this.superClass.readiness(xRequestID, options);
return response.data;
}
}
15 changes: 10 additions & 5 deletions src/ext/face-sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,23 @@ import {MatchingApi} from "./matching-api.js";
import {GroupApi} from "./group-api";
import {PersonApi} from "./person-api";
import {SearchApi} from "./search-api";
import { DiagnosticsApi } from "./diagnostics-api.js";
import { Liveness20Api } from "./liveness20-api.js";

export class FaceSdk {
matchingApi: MatchingApi;
groupApi: GroupApi;
personApi: PersonApi;
searchApi: SearchApi;

diagnosticsApi: DiagnosticsApi;
livenessApi: Liveness20Api;

constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
this.matchingApi = new MatchingApi(configuration, basePath, axios)
this.groupApi = new GroupApi(configuration, basePath, axios)
this.personApi = new PersonApi(configuration, basePath, axios)
this.searchApi = new SearchApi(configuration, basePath, axios)
this.matchingApi = new MatchingApi(configuration, basePath, axios);
this.groupApi = new GroupApi(configuration, basePath, axios);
this.personApi = new PersonApi(configuration, basePath, axios);
this.searchApi = new SearchApi(configuration, basePath, axios);
this.diagnosticsApi = new DiagnosticsApi(configuration, basePath, axios);
this.livenessApi = new Liveness20Api(configuration, basePath, axios);
}
}
48 changes: 27 additions & 21 deletions src/ext/group-api.ts
Original file line number Diff line number Diff line change
@@ -1,34 +1,40 @@
import {GroupApi as GenGroupApi} from "../api/group-api";
import {GroupToCreate, UpdateGroup} from "../models";
import {AxiosRequestConfig} from "axios";

export class GroupApi extends GenGroupApi {
createGroup(groupToCreate: GroupToCreate, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.createGroup(groupToCreate, xRequestID, options).then(r => r.data);
import {Group, GroupPage, GroupToCreate, PersonsPage, UpdateGroup} from "../models";
import {AxiosRequestConfig, AxiosInstance} from "axios";
import {Configuration} from "../configuration.js";

export class GroupApi {
private superClass: GenGroupApi;
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
this.superClass = new GenGroupApi(configuration, basePath, axios);
}

deleteGroup(groupId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.deleteGroup(groupId, xRequestID, options).then(r => r.data);
async createGroup(groupToCreate: GroupToCreate, xRequestID?: string, options?: AxiosRequestConfig): Promise<Group> {
const response = await this.superClass.createGroup(groupToCreate, xRequestID, options);
return response.data;
}

getAllGroups(page: number, size: number, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.getAllGroups(page, size, xRequestID, options).then(r => r.data);
async deleteGroup(groupId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<void> {
await this.superClass.deleteGroup(groupId, xRequestID, options);
}

getAllPersonsByGroupId(page: number, size: number, groupId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.getAllPersonsByGroupId(page, size, groupId, xRequestID, options).then(r => r.data);
async getAllGroups(page: number, size: number, xRequestID?: string, options?: AxiosRequestConfig): Promise<GroupPage> {
const response = await this.superClass.getAllGroups(page, size, xRequestID, options);
return response.data;
}

getGroup(groupId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.getGroup(groupId, xRequestID, options).then(r => r.data);
async getAllPersonsByGroupId(page: number, size: number, groupId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<PersonsPage> {
const response = await this.superClass.getAllPersonsByGroupId(page, size, groupId, xRequestID, options);
return response.data;
}

updateGroup(groupId: string, groupToCreate: GroupToCreate, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.updateGroup(groupId, groupToCreate, xRequestID, options).then(r => r.data);
async getGroup(groupId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<Group> {
const response = await this.superClass.getGroup(groupId, xRequestID, options);
return response.data;
}

updatePersonsInGroup(groupId: string, updateGroup: UpdateGroup, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.updatePersonsInGroup(groupId, updateGroup, xRequestID, options).then(r => r.data);
async updateGroup(groupId: string, groupToCreate: GroupToCreate, xRequestID?: string, options?: AxiosRequestConfig): Promise<void> {
await this.superClass.updateGroup(groupId, groupToCreate, xRequestID, options);
}
async updatePersonsInGroup(groupId: string, updateGroup: UpdateGroup, xRequestID?: string, options?: AxiosRequestConfig): Promise<void> {
await this.superClass.updatePersonsInGroup(groupId, updateGroup, xRequestID, options);
}

}
2 changes: 1 addition & 1 deletion src/ext/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './face-sdk.js';
export * from "./face-sdk.js";
15 changes: 15 additions & 0 deletions src/ext/liveness20-api.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Liveness20Api as GenLiveness20Api } from "../api/liveness20-api";
import { AxiosRequestConfig, AxiosInstance } from "axios";
import { Configuration } from "../configuration.js";
import { TransactionInfo } from "../models";

export class Liveness20Api {
private superClass: GenLiveness20Api;
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
this.superClass = new GenLiveness20Api(configuration, basePath, axios);
}
async getLivenessTransactionInfo(transactionId: number, options?: AxiosRequestConfig): Promise<TransactionInfo> {
const response = await this.superClass.getLivenessTransactionInfo(transactionId, options);
return response.data;
}
}
26 changes: 16 additions & 10 deletions src/ext/matching-api.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
import {MatchingApi as GenMatchingApi} from "../api/matching-api.js";
import {MatchRequest, DetectRequest, ImageSource} from "../models/index.js";

import {MatchRequest, DetectRequest, ImageSource, MatchResponse, DetectResponse} from "../models";
import { AxiosRequestConfig, AxiosInstance } from "axios";
import {Configuration} from "../configuration.js";
// @ts-ignore
import * as converter from "base64-arraybuffer";

export class MatchingApi extends GenMatchingApi {
export class MatchingApi {
private superClass: GenMatchingApi;
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
this.superClass = new GenMatchingApi(configuration, basePath, axios);
}

match(compareRequest: MatchRequest, xRequestID: string, options?: any): any {
async match(compareRequest: MatchRequest, xRequestID: string, options?: AxiosRequestConfig ): Promise<MatchResponse> {
for (const image of compareRequest.images) {
if (!image.type) {
image.type = ImageSource.LIVE
Expand All @@ -15,14 +20,15 @@ export class MatchingApi extends GenMatchingApi {
image.data = converter.encode(image.data)
}
}

return super.match(compareRequest, xRequestID, options).then(r => r.data);
const response = await this.superClass.match(compareRequest, xRequestID, options);
return response.data;
}

detect(detectRequest: DetectRequest, xRequestID? : string, options?: any): any {
async detect(detectRequest: DetectRequest, xRequestID?: string, options?: AxiosRequestConfig): Promise<DetectResponse> {
if (detectRequest.image && typeof detectRequest.image !== "string") {
detectRequest.image = converter.encode(detectRequest.image)
detectRequest.image = converter.encode(detectRequest.image);
}
return super.detect(detectRequest, xRequestID, options).then(r => r.data)

const response = await this.superClass.detect(detectRequest, xRequestID, options);
return response.data;
}
}
65 changes: 34 additions & 31 deletions src/ext/person-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,50 @@ import {PersonApi as GenPersonApi} from "../api/person-api";

// @ts-ignore
import * as converter from "base64-arraybuffer";
import {ImageFields, PersonFields} from "../models";
import {AxiosRequestConfig} from "axios";
import {GroupPage, Image, ImageFields, ImagePage, Person, PersonFields} from "../models";
import {AxiosRequestConfig, AxiosInstance} from "axios";
import {Configuration} from "../configuration.js";

export class PersonApi extends GenPersonApi {
createPerson(personFields: PersonFields, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.createPerson(personFields, xRequestID, options).then(r => r.data);
export class PersonApi {
private superClass: GenPersonApi;
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
this.superClass = new GenPersonApi(configuration, basePath, axios);
}

addImageToPerson(personId: string, imageFields: ImageFields, xRequestID?: string, options?: AxiosRequestConfig): any {
if (imageFields.image.content && typeof imageFields.image.content !== "string") {
async createPerson(personFields: PersonFields, xRequestID?: string, options?: AxiosRequestConfig): Promise<Person> {
const response = await this.superClass.createPerson(personFields, xRequestID, options);
return response.data;
}
async addImageToPerson(personId: string, imageFields: ImageFields, xRequestID?: string, options?: AxiosRequestConfig): Promise<Image> {
if (imageFields?.image?.content && typeof imageFields.image.content !== "string") {
imageFields.image.content = converter.encode(imageFields.image.content)
}
return super.addImageToPerson(personId, imageFields, xRequestID, options).then(r => r.data);
const response = await this.superClass.addImageToPerson(personId, imageFields, xRequestID, options)
return response.data
}

deleteImageOfPerson(imageId: string, personId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.deleteImageOfPerson(imageId, personId, xRequestID, options).then(r => r.data);
async deleteImageOfPerson(imageId: string, personId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<void> {
await this.superClass.deleteImageOfPerson(imageId, personId, xRequestID, options);
}

deletePerson(personId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.deletePerson(personId, xRequestID, options).then(r => r.data);
async deletePerson(personId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<void> {
await this.superClass.deletePerson(personId, xRequestID, options);
}

getAllGroupsByPersonId(page: number, size: number, personId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.getAllGroupsByPersonId(page, size, personId, xRequestID, options).then(r => r.data);
async getAllGroupsByPersonId(page: number, size: number, personId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<GroupPage> {
const response = await this.superClass.getAllGroupsByPersonId(page, size, personId, xRequestID, options);
return response.data;
}

getAllImagesByPersonId(page: number, size: number, personId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.getAllImagesByPersonId(page, size, personId, xRequestID, options).then(r => r.data);
async getAllImagesByPersonId(page: number, size: number, personId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<ImagePage> {
const response = await this.superClass.getAllImagesByPersonId(page, size, personId, xRequestID, options);
return response.data;
}


getImageOfPerson(imageId: string, personId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.getImageOfPerson(imageId, personId, xRequestID, options).then(r => r.data);
async getImageOfPerson(imageId: string, personId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<unknown> {
const response = await this.superClass.getImageOfPerson(imageId, personId, xRequestID, options);
return response.data;
}

getPerson(personId: string, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.getPerson(personId, xRequestID, options).then(r => r.data);
async getPerson(personId: string, xRequestID?: string, options?: AxiosRequestConfig): Promise<Person> {
const response = await this.superClass.getPerson(personId, xRequestID, options);
return response.data;
}

updatePerson(personId: string, personFields: PersonFields, xRequestID?: string, options?: AxiosRequestConfig): any {
return super.updatePerson(personId, personFields, xRequestID, options).then(r => r.data);
async updatePerson(personId: string, personFields: PersonFields, xRequestID?: string, options?: AxiosRequestConfig): Promise<void> {
await this.superClass.updatePerson(personId, personFields, xRequestID, options);
}
}
}
19 changes: 12 additions & 7 deletions src/ext/search-api.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
import {SearchApi as GenSearchApi} from "../api/search-api";
import * as converter from "base64-arraybuffer";
import {SearchRequest} from "../models";
import {AxiosRequestConfig} from "axios";
import {SearchRequest, SearchResult} from "../models";
import {AxiosRequestConfig, AxiosInstance} from "axios";
import {Configuration} from "../configuration.js";


export class SearchApi extends GenSearchApi {
search(searchRequest: SearchRequest, xRequestID?: string, options?: AxiosRequestConfig): any {
if (searchRequest.image.content && typeof searchRequest.image.content !== "string") {
export class SearchApi {
private superClass: GenSearchApi;
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
this.superClass = new GenSearchApi(configuration, basePath, axios);
}
async search(searchRequest: SearchRequest, xRequestID?: string, options?: AxiosRequestConfig): Promise<SearchResult> {
if (searchRequest?.image?.content && typeof searchRequest.image.content !== "string") {
searchRequest.image.content = converter.encode(searchRequest.image.content)
}
return super.search(searchRequest, xRequestID, options).then(r => r.data);
const response = await this.superClass.search(searchRequest, xRequestID, options);
return response.data;
}
}