package qa.qcri.aidr.trainer.api.controller;
import java.util.List;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import qa.qcri.aidr.trainer.api.entity.ClientApp;
import qa.qcri.aidr.trainer.api.service.ClientAppService;
import qa.qcri.aidr.trainer.api.store.CodeLookUp;
import qa.qcri.aidr.trainer.api.store.StatusCodeType;
import qa.qcri.aidr.trainer.api.template.ClientAppModel;
/**
* Created with IntelliJ IDEA.
* User: jlucas
* Date: 2/21/14
* Time: 1:44 AM
* To change this template use File | Settings | File Templates.
*/
@RequestMapping("/clientapp")
@RestController
public class ClientAppController {
@Autowired
private ClientAppService clientAppService;
private static Logger logger = Logger.getLogger(ClientAppController.class);
@RequestMapping("/delete/{crisiscode}/{attributecode}")
public Response getCrisisByID(@PathParam("crisiscode") String crisiscode,
@PathParam("attributecode") String attributecode){
String shortName = crisiscode+"_"+ attributecode;
clientAppService.updateClientAppByShortName(shortName, StatusCodeType.CLIENT_APP_INACTIVE);
return Response.status(CodeLookUp.APP_SERVICE_COMPLETED).entity(StatusCodeType.POST_COMPLETED).build();
}
@RequestMapping("/delete/crisis/{crisisID}")
public Response disableClientApps(@PathParam("crisisID") Long crisisID){
try{
clientAppService.deactivateClientAppByCrisis(crisisID);
}
catch(Exception e){
logger.error("disableClientApps exception for crisisID: " + crisisID);
}
return Response.status(CodeLookUp.APP_SERVICE_COMPLETED).entity(StatusCodeType.POST_COMPLETED).build();
}
@RequestMapping("/delete/attribute/{crisisID}/{attributeID}")
public Response disableClientApp(@PathParam("crisisID") Long crisisID, @PathParam("attributeID") Long attributeID){
try{
clientAppService.deactivateClientAppByAttribute(crisisID, attributeID);
}
catch(Exception e){
logger.error("disableClientApps exception in deleting for crisisId:" + crisisID + ", attributeID: " + attributeID);
}
return Response.status(CodeLookUp.APP_SERVICE_COMPLETED).entity(StatusCodeType.POST_COMPLETED).build();
}
@RequestMapping("/allactive")
public List<ClientAppModel> getAllActive(){
return clientAppService.getAllActiveClientApps();
}
@RequestMapping("/get/crisis/{crisisID}")
public List<ClientApp> getClientAppsByCrisisID(@PathParam("crisisID") Long crisisID){
return clientAppService.getAllClientAppByCrisisID(crisisID);
}
@RequestMapping("/activate/mobile/crisis/{crisisID}")
public Response enableMobileClientAppByCrisisID(@PathParam("crisisID") Long crisisID){
Integer status = StatusCodeType.AIDR_MICROMAPPER_BOTH;
String returnValue = clientAppService.enableForClientAppStatusByCrisisID(crisisID, status);
return Response.status(CodeLookUp.APP_SERVICE_COMPLETED).entity(returnValue).build();
}
}