@POST @Produces(JSON_UTF8) @Path("disconnectMissionProcess") public Response disconnectMissionProcess( @QueryParam("processNumber") String processNumber, @QueryParam("hostname") String hostname, @QueryParam("remoteProcessNumber") String remoteProcessNumber, @QueryParam("username") String username, @QueryParam("access_token") String access_token) { checkToken(access_token); login(User.findByUsername(username)); try { final Mission mission = findMission(remoteProcessNumber); if (mission == null) { return respondWithError(Status.BAD_REQUEST, "bad.mission.number"); } else { final MissionProcess missionProcess = mission.getMissionProcess(); final RemoteMissionSystem remoteMissionSystem = RemoteMissionSystem.find(hostname); if (remoteMissionSystem == null) { return respondWithError(Status.NOT_ACCEPTABLE, "remote.host.not.configured"); } for (final RemoteMissionProcess remoteMissionProcess : missionProcess.getRemoteMissionProcessSet()) { if (remoteMissionProcess.getRemoteMissionSystem() == remoteMissionSystem && remoteMissionProcess.getProcessNumber().equals(processNumber)) { final DisassociateMissionProcessActivity activity = (DisassociateMissionProcessActivity) missionProcess.getActivity(DisassociateMissionProcessActivity.class); final DisassociateMissionProcessActivityInfo information = activity.getActivityInformation(missionProcess); information.setRemoteMissionProcess(remoteMissionProcess); information.setConnect(false); activity.execute(information); } } return Response.ok().build(); } } finally { logout(); } }
@POST @Produces(JSON_UTF8) @Path("connectMissionProcess") public Response connectMissionProcess( @QueryParam("processNumber") String processNumber, @QueryParam("externalId") String externalId, @QueryParam("hostname") String hostname, @QueryParam("remoteProcessNumber") String remoteProcessNumber, @QueryParam("username") String username, @QueryParam("access_token") String access_token) { checkToken(access_token); try { login(User.findByUsername(username)); final Mission mission = findMission(remoteProcessNumber); if (mission == null) { return respondWithError(Status.BAD_REQUEST, "bad.mission.number"); } else { final MissionProcess missionProcess = mission.getMissionProcess(); final RemoteMissionSystem remoteMissionSystem = RemoteMissionSystem.find(hostname); if (remoteMissionSystem == null) { return respondWithError(Status.NOT_ACCEPTABLE, "remote.host.not.configured"); } final AssociateMissionProcessActivity activity = (AssociateMissionProcessActivity) missionProcess.getActivity(AssociateMissionProcessActivity.class); final AssociateMissionProcessActivityInfo information = activity.getActivityInformation(missionProcess); information.setProcessNumber(processNumber); information.setExternalId(externalId); information.setRemoteMissionSystem(remoteMissionSystem); information.setConnect(false); activity.execute(information); final JsonObject obj = new JsonObject(); obj.addProperty("processID", missionProcess.getProcessNumber()); obj.addProperty("externalId", missionProcess.getExternalId()); return Response.ok().entity(gson.toJson(obj)).build(); } } finally { logout(); } }