/*
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
*/
|
package com.megatim.fdxconsultation.service.impl.remoteaction;
|
|
import com.megatim.fdxcommons.model.dtos.remoteproduction.RemoteConfigurationDto;
|
import com.megatim.fdxcommons.model.enumeration.OrderByType;
|
import com.megatim.fdxcommons.model.pojo.CriteriaFormRequest;
|
import com.megatim.fdxcommons.model.pojo.OrderByDefinition;
|
import com.megatim.fdxconsultation.model.remoteaction.RemoteConfiguration;
|
import com.megatim.fdxcommons.tools.exceptions.ApplicationForbidenException;
|
import com.megatim.fdxcommons.tools.exceptions.CommonApplicationServerException;
|
import com.megatim.fdxconsultation.core.ifaces.administration.UserManager;
|
import com.megatim.fdxconsultation.core.ifaces.log.UserActionLogManager;
|
import com.megatim.fdxconsultation.core.ifaces.remoteaction.RemoteConfigurationManager;
|
import com.megatim.fdxconsultation.core.impl.utils.CriteriaEntitySearchUtil;
|
import com.megatim.fdxconsultation.model.administration.User;
|
import com.megatim.fdxconsultation.model.mappers.MapStructMapper;
|
import com.megatim.fdxconsultation.service.ifaces.remoteaction.RemoteConfigurationRS;
|
import com.megatim.fdxconsultation.service.impl.api.token.ApiTokenRSImpl;
|
import com.mgt.rs.security.core.common.AuthenticatedUser;
|
import java.net.URL;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.logging.Level;
|
import java.util.logging.Logger;
|
import javax.enterprise.event.Observes;
|
import javax.inject.Inject;
|
import javax.ws.rs.Path;
|
import javax.ws.rs.core.HttpHeaders;
|
import javax.ws.rs.core.Response;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
//@SecuredClass(module = AppCommonContext.MODULE_ADMINISTRATION, path = AppCommonContext.PATH_API_TOKEN, description = AppCommonContext.PATH_API_TOKEN)
|
@Path("remoteconfiguration-management")
|
public class RemoteConfigurationRSImpl implements RemoteConfigurationRS {
|
|
@Inject
|
private RemoteConfigurationManager manager;
|
|
@Inject
|
private UserActionLogManager userActionLogManager;
|
|
@Inject
|
private UserManager userManager;
|
|
@AuthenticatedUser
|
private User utilisateurConnecte;
|
|
@Inject
|
private MapStructMapper mapStructMapper;
|
|
public void handleAuthenticationEvent(@Observes @AuthenticatedUser String username) {
|
utilisateurConnecte = userManager.recuperUtilisateur(username);
|
}
|
|
@Override
|
public RemoteConfigurationDto mapToDto(RemoteConfiguration entity) {
|
return mapStructMapper.remoteConfigurationToRemoteConfigurationDto(entity);
|
}
|
|
@Override
|
public Response findById(HttpHeaders headers, String id) {
|
RemoteConfiguration config = manager.find(manager.getEntityIdName(), id);
|
return Response.ok(mapToDto(config)).build();
|
}
|
|
@Override
|
public Response findWithPagination(HttpHeaders headers, Integer pageNumber, Integer pageSize, CriteriaFormRequest criteriaFormRequest) {
|
try {
|
List<RemoteConfiguration> data = manager.findWithPagination(criteriaFormRequest.getCriteria(),
|
Arrays.asList(), Arrays.asList(new OrderByDefinition(manager.getEntityIdName(), OrderByType.DESC)), pageNumber, pageSize);
|
return Response.ok(mapStructMapper.remoteConfigurationListToRemoteConfigurationDtoList(data)).build();
|
} catch (Exception ex) {
|
Logger.getLogger(ApiTokenRSImpl.class.getName()).log(Level.SEVERE, null, ex);
|
throw new CommonApplicationServerException();
|
}
|
}
|
|
@Override
|
public Long count(HttpHeaders headers, CriteriaFormRequest criteriaFormRequest) {
|
try {
|
return manager.count(criteriaFormRequest.getCriteria());
|
} catch (Exception ex) {
|
Logger.getLogger(ApiTokenRSImpl.class.getName()).log(Level.SEVERE, null, ex);
|
throw new CommonApplicationServerException();
|
}
|
}
|
|
@Override
|
public Response getSearchColumns(HttpHeaders headers) {
|
return Response.ok(CriteriaEntitySearchUtil.getSearchColumns(RemoteConfiguration.class)).build();
|
}
|
|
@Override
|
public Response findAll(HttpHeaders headers, CriteriaFormRequest criteriaFormRequest) {
|
try {
|
return Response.ok(manager.findAll(criteriaFormRequest.getCriteria(),
|
Arrays.asList(), Arrays.asList(new OrderByDefinition(manager.getEntityIdName(), OrderByType.DESC)))).build();
|
} catch (Exception ex) {
|
ex.printStackTrace();
|
throw new CommonApplicationServerException();
|
}
|
}
|
|
@Override
|
public Response save(HttpHeaders headers, RemoteConfiguration entity) {
|
stopIfUrlNotValid(entity.getUrl());
|
return Response.ok(manager.saveAndSend(entity, utilisateurConnecte)).build();
|
}
|
|
@Override
|
public Response update(HttpHeaders headers, String id, RemoteConfiguration entity) {
|
stopIfUrlNotValid(entity.getUrl());
|
return Response.ok(manager.updateAndSend(id, entity, utilisateurConnecte)).build();
|
}
|
|
@Override
|
public Response delete(HttpHeaders headers, String id) {
|
manager.deleteAndSend(id, utilisateurConnecte);
|
return Response.ok().build();
|
}
|
|
private void stopIfUrlNotValid(String url) {
|
try {
|
new URL(url).toURI();
|
} catch (Exception e) {
|
throw new ApplicationForbidenException("URL not valide");
|
}
|
|
}
|
}
|