UNPKG

@regulaforensics/face-sdk

Version:

This is an npm module for Regula Face SDK. It allows you to easily compaire faces using your phone's camera.

146 lines (119 loc) 5.12 kB
import { exec } from '../internal/bridge' import { Person } from './person' import { PersonImage } from './person_image' import { PageableItemList } from './pageable_item_list' import { PersonGroup } from './person_group' import { SearchPerson } from './search_person' export class PersonDatabase { async createPerson(name, params) { var response = await exec("createPerson", [name, params?.groupIds, params?.metadata]) return this._itemResponseFromJson(response, Person.fromJson) } async updatePerson(person) { var response = await exec("updatePerson", [person]) return this._successResponseFromJson(response) } async deletePerson(personId) { var response = await exec("deletePerson", [personId]) return this._successResponseFromJson(response) } async getPerson(personId) { var response = await exec("getPerson", [personId]) return this._itemResponseFromJson(response, Person.fromJson) } async addPersonImage(personId, image) { var response = await exec("addPersonImage", [personId, image]) return this._itemResponseFromJson(response, PersonImage.fromJson) } async deletePersonImage(personId, imageId) { var response = await exec("deletePersonImage", [personId, imageId]) return this._successResponseFromJson(response) } async getPersonImage(personId, imageId) { var response = await exec("getPersonImage", [personId, imageId]) return this._itemResponseFromJson(response, data => data) } async getPersonImages(personId) { var response = await exec("getPersonImages", [personId]) return this._listResponseFromJson(response, PersonImage.fromJson) } async getPersonImagesForPage(personId, page, size) { var response = await exec("getPersonImagesForPage", [personId, page, size]) return this._listResponseFromJson(response, PersonImage.fromJson) } async createGroup(name, params) { var response = await exec("createGroup", [name, params?.metadata]) return this._itemResponseFromJson(response, PersonGroup.fromJson) } async updateGroup(group) { var response = await exec("updateGroup", [group]) return this._successResponseFromJson(response) } async editPersonsInGroup(groupId, request) { var response = await exec("editPersonsInGroup", [groupId, request]) return this._successResponseFromJson(response) } async deleteGroup(groupId) { var response = await exec("deleteGroup", [groupId]) return this._successResponseFromJson(response) } async getGroup(groupId) { var response = await exec("getGroup", [groupId]) return this._itemResponseFromJson(response, PersonGroup.fromJson) } async getGroups() { var response = await exec("getGroups", []) return this._listResponseFromJson(response, PersonGroup.fromJson) } async getGroupsForPage(page, size) { var response = await exec("getGroupsForPage", [page, size]) return this._listResponseFromJson(response, PersonGroup.fromJson) } async getPersonGroups(personId) { var response = await exec("getPersonGroups", [personId]) return this._listResponseFromJson(response, PersonGroup.fromJson) } async getPersonGroupsForPage(personId, page, size) { var response = await exec("getPersonGroupsForPage", [personId, page, size]) return this._listResponseFromJson(response, PersonGroup.fromJson) } async getPersonsInGroup(groupId) { var response = await exec("getPersonsInGroup", [groupId]) return this._listResponseFromJson(response, Person.fromJson) } async getPersonsInGroupForPage(groupId, page, size) { var response = await exec("getPersonsInGroupForPage", [groupId, page, size]) return this._listResponseFromJson(response, Person.fromJson) } async searchPerson(request) { var response = await exec("searchPerson", [request]) var jsonObject = JSON.parse(response) var data = null if (jsonObject["data"] != null) { data = [] for (var item of jsonObject["data"]) data.push(SearchPerson.fromJson(item)) } var error = jsonObject["error"] return [data, error] } _successResponseFromJson(jsonString) { var jsonObject = JSON.parse(jsonString) var data = jsonObject["data"] var error = jsonObject["error"] var success = data ?? false return [success, error] } _itemResponseFromJson(jsonString, fromJSON) { var jsonObject = JSON.parse(jsonString) var data = fromJSON(jsonObject["data"]) var error = jsonObject["error"] return [data, error] } _listResponseFromJson(jsonString, fromJSON) { var jsonObject = JSON.parse(jsonString) var data = PageableItemList.fromJson(jsonObject["data"], fromJSON) var error = jsonObject["error"] return [data, error] } }