All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.identityx.clientSDK.repositories.UserRepository Maven / Gradle / Ivy

There is a newer version: 5.6.0.2
Show newest version
/*
* Copyright Daon.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.identityx.clientSDK.repositories;

import java.util.HashMap;

import com.daon.identityx.rest.model.def.DataTypeEnum;
import com.daon.identityx.rest.model.def.ResourcePaths;
import com.daon.identityx.rest.model.pojo.DataSample;
import com.daon.identityx.rest.model.pojo.FaceDataSample;
import com.daon.identityx.rest.model.pojo.User;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.identityx.auth.impl.QueryString;
import com.identityx.clientSDK.collections.DataSampleCollection;
import com.identityx.clientSDK.collections.FaceDataSampleCollection;
import com.identityx.clientSDK.collections.UserCollection;
import com.identityx.clientSDK.exceptions.IdxRestException;
import com.identityx.clientSDK.expandSpecs.UserExpandSpecForGet;
import com.identityx.clientSDK.queryHolders.DataRemovalSpec;
import com.identityx.clientSDK.queryHolders.DataSampleQueryHolder;
import com.identityx.clientSDK.queryHolders.SensitiveDataSpec;
import com.identityx.clientSDK.queryHolders.UserQueryHolder;

/**
 * 
 * Repository for the User entity. 
 *
 */
public class UserRepository extends BaseRepository {

	public UserRepository() {
		super(User.class, UserCollection.class);
		setResourcePath(ResourcePaths.defaultUserPath);
	}

	public void delete(User entity) throws IdxRestException {
		this.delete(entity, null);
	}

	public void delete(User entity, HashMap requestSpecificHeaders) throws IdxRestException {
		getRestClient().delete(entity.getHref(), User.class, requestSpecificHeaders);
	}

	public User deleteData(User entity, DataTypeEnum dataType) throws IdxRestException {
		return getRestClient().delete(entity.getHref() + "/" + dataType, User.class);
	}

	public User deleteData(User entity, DataTypeEnum dataType, HashMap requestSpecificHeaders) throws IdxRestException {
		return getRestClient().delete(entity.getHref() + "/" + dataType, User.class, requestSpecificHeaders);
	}

	public FaceDataSampleCollection addData(User entity, FaceDataSample data) throws IdxRestException {
		return this.addData(entity, data, null);
	}

	public FaceDataSampleCollection addData(User entity, FaceDataSample data, HashMap requestSpecificHeaders) throws IdxRestException {
		return getRestClient().post(data, entity.getHref() + "/face/samples", FaceDataSampleCollection.class, requestSpecificHeaders);
	}

	public DataSampleCollection addData(User entity, DataSample data) throws IdxRestException {
		return this.addData(entity, data, null);
	}

	public DataSampleCollection addData(User entity, DataSample data, HashMap requestSpecificHeaders) throws IdxRestException {
		return getRestClient().post(data, entity.getHref() + "/samples", DataSampleCollection.class, requestSpecificHeaders);
	}

	public DataSampleCollection addData(User entity, DataSample[] data) throws IdxRestException {
		return this.addData(entity, data, null);
	}

	public DataSampleCollection addData(User entity, DataSample[] data, HashMap requestSpecificHeaders) throws IdxRestException {
		return getRestClient().post(data, entity.getHref() + "/samples", DataSampleCollection.class, requestSpecificHeaders);
	}

	public User deleteData(User entity, DataTypeEnum dataType, DataRemovalSpec dataRemovalSpec) throws IdxRestException {

		return this.deleteData(entity, dataType, dataRemovalSpec, null); 
	}

	public User deleteData(User entity, DataTypeEnum dataType, DataRemovalSpec dataRemovalSpec, HashMap requestSpecificHeaders) throws IdxRestException {

		QueryString queryString = new QueryString();

		if (dataRemovalSpec != null) {
			queryString.put("rawDataOnly", Boolean.toString(dataRemovalSpec.isRawDataOnly()));
		}

		String href = entity.getHref() + "/" + dataType.name();

		return getRestClient().delete(href, queryString, User.class, requestSpecificHeaders);
	}

	public User unblockData(User entity, DataTypeEnum dataType) throws IdxRestException {
		return getRestClient().delete(entity.getHref() + "/" + dataType + "/blocked", User.class);
	}

	public User unblockData(User entity, DataTypeEnum dataType, HashMap requestSpecificHeaders) throws IdxRestException {
		return getRestClient().delete(entity.getHref() + "/" + dataType + "/blocked", User.class, requestSpecificHeaders);
	}

	/**
	 * Executes a get operation on a Rest service
	 * @param href url of the Rest service 
	 * @param expandSpec {@link com.identityx.clientSDK.expandSpecs.UserExpandSpecForGet}  
	 * @return the deserialised resource returned by the Rest service 
	 * @throws IdxRestException
	 */
	public User get(String href, UserExpandSpecForGet expandSpec, SensitiveDataSpec sensitiveDataSpec) throws IdxRestException {
		
		return this.get(href, expandSpec, sensitiveDataSpec, null);
	}
	
	public User get(String href, UserExpandSpecForGet expandSpec, SensitiveDataSpec sensitiveDataSpec, HashMap requestSpecificHeaders) throws IdxRestException {
		
		QueryString queryString = new QueryString();
		if (expandSpec != null) {							
			try {
				queryString.put("expand", (new ObjectMapper()).writeValueAsString(expandSpec));
			} catch (JsonProcessingException e) {
				throw new IdxRestException("Failed to convert to JSON", e);
			}
		}
		if (sensitiveDataSpec != null) {							
			queryString.put("sensitiveData", String.valueOf(sensitiveDataSpec.getSensitiveData()));
		}
		
		return super.get(href, queryString, requestSpecificHeaders);
	}

	public DataSampleCollection listSamples(User entity, DataSampleQueryHolder queryHolder) throws IdxRestException {
		String href = entity.getHref() + "/samples";
		DataSampleCollection result = getRestClient().list(queryHolder, href, DataSampleCollection.class);
		return result;
	}

	public DataSample getSample(String href, SensitiveDataSpec sensitiveDataSpec) throws IdxRestException {
		return getSample(href, sensitiveDataSpec, null);
	}

	public DataSample getSample(String href, SensitiveDataSpec sensitiveDataSpec, HashMap requestSpecificHeaders) throws IdxRestException {
		QueryString queryString = new QueryString();
		if (sensitiveDataSpec != null) {							
			queryString.put("sensitiveData", String.valueOf(sensitiveDataSpec.getSensitiveData()));
		}
		return getRestClient().get(queryString, href, DataSample.class, requestSpecificHeaders);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy