/* * 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 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"); } } }