@POST @Path("/update") public Response updateAccount(@FormParam("firstName") String firstName, @FormParam("lastName") String lastName, @FormParam("emailAddress") String newEmailAddress) throws Exception { String oldEmailAddress = account.getEmailAddress(); if (EqualsUtils.objectsNotEqual(oldEmailAddress, newEmailAddress)) { // They are changing the emails address. if (execContext.getAccountStore().getByEmail(newEmailAddress) != null) { String msg = String.format("The email address %s is already in use.", newEmailAddress); throw ApiException.conflict(msg); } } UpdateAccountAction action = new UpdateAccountAction(firstName, lastName, newEmailAddress); account.apply(action); execContext.getAccountStore().update(account); if (EqualsUtils.objectsNotEqual(oldEmailAddress, newEmailAddress)) { // The email address has changed - we will need to update the session execContext.getSessionStore().newSession(newEmailAddress); } execContext.setLastMessage("You account details have been updated."); return Response.seeOther(new URI("manage/account")).build(); }
public static ApiException fromCode(HttpStatusCode httpStatusCode, String message, Throwable ex, String...traits) { switch (httpStatusCode) { // The 400 series case BAD_REQUEST: return badRequest(message, ex, traits); case UNAUTHORIZED: return unauthorized(message, ex, traits); case FORBIDDEN: return forbidden(message, ex, traits); case NOT_FOUND: return notFound(message, ex, traits); case CONFLICT: return conflict(message, ex, traits); case PRECONDITION_FAILED: return preconditionFailed(message, ex, traits); case IM_A_TEAPOT: return imATeapot(message, ex, traits); // The 500 series case INTERNAL_SERVER_ERROR: return internalServerError(message, ex, traits); case NOT_IMPLEMENTED: return notImplemented(message, ex, traits); case SERVICE_UNAVAILABLE: return serviceUnavailable(message, ex, traits); // The 100, 200 & 300 series default: return new ApiException(httpStatusCode, message, ex, traits); } } public static ApiException fromCode(int code, FineMessage richMessage) {
public static ApiException fromCode(HttpStatusCode httpStatusCode) { switch (httpStatusCode) { // The 400 series case BAD_REQUEST: return badRequest(); case UNAUTHORIZED: return unauthorized(); case FORBIDDEN: return forbidden(); case NOT_FOUND: return notFound(); case CONFLICT: return conflict(); case PRECONDITION_FAILED: return preconditionFailed(); case IM_A_TEAPOT: return imATeapot(); // The 500 series case INTERNAL_SERVER_ERROR: return internalServerError(); case NOT_IMPLEMENTED: return notImplemented(); case SERVICE_UNAVAILABLE: return serviceUnavailable(); // The 100, 200 & 300 series default: return new ApiException(httpStatusCode); } } public static ApiException fromCode(int code, String message, String...traits) {
public static ApiException fromCode(HttpStatusCode httpStatusCode, FineMessageSet messageSet) { switch (httpStatusCode) { // The 400 series case BAD_REQUEST: return badRequest(messageSet); case UNAUTHORIZED: return unauthorized(messageSet); case FORBIDDEN: return forbidden(messageSet); case NOT_FOUND: return notFound(messageSet); case CONFLICT: return conflict(messageSet); case PRECONDITION_FAILED: return preconditionFailed(messageSet); case IM_A_TEAPOT: return imATeapot(messageSet); // The 500 series case INTERNAL_SERVER_ERROR: return internalServerError(messageSet); case NOT_IMPLEMENTED: return notImplemented(); case SERVICE_UNAVAILABLE: return serviceUnavailable(messageSet); // The 100, 200 & 300 series default: return new ApiException(httpStatusCode, messageSet); } } public static ApiException fromCode(int code, FineMessageSet messageSet, Throwable ex) {
public static ApiException fromCode(HttpStatusCode httpStatusCode, String message, String...traits) { switch (httpStatusCode) { // The 400 series case BAD_REQUEST: return badRequest(message, traits); case UNAUTHORIZED: return unauthorized(message, traits); case FORBIDDEN: return forbidden(message, traits); case NOT_FOUND: return notFound(message, traits); case CONFLICT: return conflict(message, traits); case PRECONDITION_FAILED: return preconditionFailed(message, traits); case IM_A_TEAPOT: return imATeapot(message, traits); // The 500 series case INTERNAL_SERVER_ERROR: return internalServerError(message, traits); case NOT_IMPLEMENTED: return notImplemented(message, traits); case SERVICE_UNAVAILABLE: return serviceUnavailable(message, traits); // The 100, 200 & 300 series default: return new ApiException(httpStatusCode, message, traits); } } public static ApiException fromCode(int code, Throwable ex, String...traits) {
public static ApiException fromCode(HttpStatusCode httpStatusCode, FineMessageSet messageSet, Throwable ex) { switch (httpStatusCode) { // The 400 series case BAD_REQUEST: return badRequest(messageSet, ex); case UNAUTHORIZED: return unauthorized(messageSet, ex); case FORBIDDEN: return forbidden(messageSet, ex); case NOT_FOUND: return notFound(messageSet, ex); case CONFLICT: return conflict(messageSet, ex); case PRECONDITION_FAILED: return preconditionFailed(messageSet, ex); case IM_A_TEAPOT: return imATeapot(messageSet, ex); // The 500 series case INTERNAL_SERVER_ERROR: return internalServerError(messageSet, ex); case NOT_IMPLEMENTED: return notImplemented(messageSet, ex); case SERVICE_UNAVAILABLE: return serviceUnavailable(messageSet, ex); // The 100, 200 & 300 series default: return new ApiException(httpStatusCode, messageSet, ex); } } private static HttpStatusCode toHttpStatusCode(int code) {
public static ApiException fromCode(HttpStatusCode httpStatusCode, Throwable ex, String...traits) { switch (httpStatusCode) { // The 400 series case BAD_REQUEST: return badRequest(ex, traits); case UNAUTHORIZED: return unauthorized(ex, traits); case FORBIDDEN: return forbidden(ex, traits); case NOT_FOUND: return notFound(ex, traits); case CONFLICT: return conflict(ex, traits); case PRECONDITION_FAILED: return preconditionFailed(ex, traits); case IM_A_TEAPOT: return imATeapot(ex, traits); // The 500 series case INTERNAL_SERVER_ERROR: return internalServerError(ex, traits); case NOT_IMPLEMENTED: return notImplemented(ex, traits); case SERVICE_UNAVAILABLE: return serviceUnavailable(ex, traits); // The 100, 200 & 300 series default: return new ApiException(httpStatusCode, ex, traits); } } public static ApiException fromCode(int code, String message, Throwable ex, String...traits) {
public static ApiException fromCode(HttpStatusCode httpStatusCode, FineMessage richMessage) { switch (httpStatusCode) { // The 400 series case BAD_REQUEST: return badRequest(richMessage); case UNAUTHORIZED: return unauthorized(richMessage); case FORBIDDEN: return forbidden(richMessage); case NOT_FOUND: return notFound(richMessage); case CONFLICT: return conflict(richMessage); case PRECONDITION_FAILED: return preconditionFailed(richMessage); case IM_A_TEAPOT: return imATeapot(richMessage); // The 500 series case INTERNAL_SERVER_ERROR: return internalServerError(richMessage); case NOT_IMPLEMENTED: return notImplemented(richMessage); case SERVICE_UNAVAILABLE: return serviceUnavailable(richMessage); // The 100, 200 & 300 series default: return new ApiException(httpStatusCode, richMessage); } } public static ApiException fromCode(int code, FineMessage richMessage, Throwable ex) {
public static ApiException fromCode(HttpStatusCode httpStatusCode, FineMessage richMessage, Throwable ex) { switch (httpStatusCode) { // The 400 series case BAD_REQUEST: return badRequest(richMessage, ex); case UNAUTHORIZED: return unauthorized(richMessage, ex); case FORBIDDEN: return forbidden(richMessage, ex); case NOT_FOUND: return notFound(richMessage, ex); case CONFLICT: return conflict(richMessage, ex); case PRECONDITION_FAILED: return preconditionFailed(richMessage, ex); case IM_A_TEAPOT: return imATeapot(richMessage, ex); // The 500 series case INTERNAL_SERVER_ERROR: return internalServerError(richMessage, ex); case NOT_IMPLEMENTED: return notImplemented(richMessage, ex); case SERVICE_UNAVAILABLE: return serviceUnavailable(richMessage, ex); // The 100, 200 & 300 series default: return new ApiException(httpStatusCode, richMessage, ex); } } public static ApiException fromCode(int code, FineMessageSet messageSet) {