Class PutAccount

  • All Implemented Interfaces:
    RestModifyView<AccountResource,​AccountInput>, RestView<AccountResource>

    public class PutAccount
    extends Object
    implements RestModifyView<AccountResource,​AccountInput>
    REST endpoint for updating an existing account.

    This REST endpoint handles PUT /accounts/<account-identifier> requests if the specified account already exists. If it doesn't exist yet, the request is handled by CreateAccount.

    We do not support account updates via this path, hence this REST endpoint always throws a ResourceConflictException which results in a 409 Conflict response. Account properties can only be updated via the dedicated REST endpoints that serve PUT requests on /accounts/<account-identifier>/<account-view>.

    This REST endpoint solely exists to avoid user confusion if they create a new account with PUT /accounts/<account-identifier> and then repeat the same request. Without this REST endpoint the second request would fail with 404 Not Found, which would be surprising to the user.

    • Constructor Detail

      • PutAccount

        public PutAccount()
    • Method Detail

      • apply

        public Response<AccountInfo> apply​(AccountResource resource,
                                           AccountInput input)
                                    throws ResourceConflictException
        Description copied from interface: RestModifyView
        Process the view operation by altering the resource.

        The value of the returned response is automatically converted to JSON unless it is a BinaryResult.

        The returned response defines the status code that is returned to the client. For RestModifyViews this is usually 200 OK, but other 2XX or 3XX status codes are also possible (e.g. 202 Accepted if a background task was scheduled, 204 No Content if no content is returned, 302 Found for a redirect).

        Throwing a subclass of RestApiException results in a 4XX response to the client. For any other exception the client will get a 500 Internal Server Error response.

        Specified by:
        apply in interface RestModifyView<AccountResource,​AccountInput>
        Parameters:
        resource - resource to modify
        input - input after parsing from request
        Returns:
        response to return to the client
        Throws:
        ResourceConflictException - the resource state does not permit this view to make the changes at this time.