package carpool.resources.adminResource; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import org.restlet.engine.header.Header; import org.restlet.ext.json.JsonRepresentation; import org.restlet.representation.Representation; import org.restlet.representation.StringRepresentation; import org.restlet.resource.*; import org.restlet.util.Series; import org.restlet.data.*; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import carpool.common.Validator; import carpool.configurations.EnumConfig; import carpool.configurations.EnumConfig.MessageState; import carpool.configurations.EnumConfig.TransactionState; import carpool.configurations.EnumConfig.TransactionStateChangeAction; import carpool.configurations.EnumConfig.UserState; import carpool.dbservice.*; import carpool.dbservice.admin.AdminService; import carpool.exception.PseudoException; import carpool.exception.auth.DuplicateSessionCookieException; import carpool.exception.auth.SessionEncodingException; import carpool.exception.message.MessageNotFoundException; import carpool.exception.message.MessageOwnerNotMatchException; import carpool.exception.transaction.TransactionNotFoundException; import carpool.exception.transaction.TransactionOwnerNotMatchException; import carpool.exception.transaction.TransactionStateViolationException; import carpool.factory.JSONFactory; import carpool.model.*; import carpool.resources.PseudoResource; import carpool.resources.userResource.UserResource; import carpool.resources.userResource.userAuthResource.UserAuthenticationResource; public class AdminStateChangeResource extends PseudoResource{ @Get public Representation updateTransaction(Representation entity) { String access_admin = ""; String moduleName = ""; int id = -1; int stateIndex = -1; try { access_admin = this.getQueryVal("access_admin"); moduleName = this.getQueryVal("moduleName"); id = Integer.parseInt(this.getQueryVal("id")); stateIndex = Integer.parseInt(this.getQueryVal("stateIndex")); if (!access_admin.equals(EnumConfig.access_admin)){ setStatus(Status.CLIENT_ERROR_UNAUTHORIZED); this.addCORSHeader(); return this.buildQuickResponse("invalid authorization value"); } if (moduleName.equalsIgnoreCase("user")){ AdminService.changeUserState(id, UserState.fromInt(stateIndex)); } else if (moduleName.equalsIgnoreCase("message")){ AdminService.changeMessageState(id, MessageState.fromInt(stateIndex)); } else if (moduleName.equalsIgnoreCase("transaction")){ AdminService.changeTransactionState(id, TransactionState.fromInt(stateIndex)); } } catch (PseudoException e){ this.addCORSHeader(); return this.doPseudoException(e); } catch(Exception e){ return this.doException(e); } Representation result = new JsonRepresentation(new JSONObject()); this.addCORSHeader(); return result; } }