/**
* =============================================================================
*
* ORCID (R) Open Source
* http://orcid.org
*
* Copyright (c) 2012-2014 ORCID, Inc.
* Licensed under an MIT-Style License (MIT)
* http://orcid.org/open-source-license
*
* This copyright and license information (including a link to the full license)
* shall be included in its entirety in all copies or substantial portion of
* the software.
*
* =============================================================================
*/
package org.orcid.persistence.dao.impl;
import java.util.List;
import javax.persistence.Query;
import org.orcid.persistence.dao.ClientRedirectDao;
import org.orcid.persistence.jpa.entities.ClientRedirectUriEntity;
import org.orcid.persistence.jpa.entities.keys.ClientRedirectUriPk;
import org.springframework.transaction.annotation.Transactional;
/**
*
* @author jamesb
*
*/
public class ClientRedirectDaoImpl extends GenericDaoImpl<ClientRedirectUriEntity, ClientRedirectUriPk> implements ClientRedirectDao {
public ClientRedirectDaoImpl() {
super(ClientRedirectUriEntity.class);
}
@Override
public List<ClientRedirectUriEntity> findClientDetailsWithRedirectScope() {
Query query = entityManager.createQuery("from ClientRedirectUriEntity as crue " + "inner join fetch crue.clientDetailsEntity "
+ "where crue.predefinedClientScope is not null");
return query.getResultList();
}
@Override
@Transactional
public void addClientRedirectUri(String clientId, String redirectUri) {
Query query = entityManager
.createNativeQuery("INSERT INTO client_redirect_uri (date_created, last_modified, client_details_id, redirect_uri) VALUES (now(), now(), :clientId, :redirectUri)");
query.setParameter("clientId", clientId);
query.setParameter("redirectUri", redirectUri);
query.executeUpdate();
}
@Override
@Transactional
public void removeClientRedirectUri(String clientId, String redirectUri) {
Query query = entityManager
.createNativeQuery("delete from client_redirect_uri where client_details_id=:clientId and redirect_uri=:redirectUri");
query.setParameter("clientId", clientId);
query.setParameter("redirectUri", redirectUri);
query.executeUpdate();
}
}