@GET @Path("/{accountId:" + UUID_PATTERN + "}/" + EMAIL_NOTIFICATIONS) @Produces(APPLICATION_JSON) public Response getEmailNotificationsForAccount(@PathParam("accountId") final String accountId, @javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException { final Account account = accountUserApi.getAccountById(UUID.fromString(accountId), context.createContext(request)); final InvoiceEmailJson invoiceEmailJson = new InvoiceEmailJson(accountId, account.isNotifiedForInvoices()); return Response.status(Status.OK).entity(invoiceEmailJson).build(); }
@Test(groups = "fast") public void testJson() throws Exception { final String accountId = UUID.randomUUID().toString(); final boolean isNotifiedForInvoices = true; final InvoiceEmailJson invoiceEmailJson = new InvoiceEmailJson(accountId, isNotifiedForInvoices); Assert.assertEquals(invoiceEmailJson.getAccountId(), accountId); Assert.assertEquals(invoiceEmailJson.isNotifiedForInvoices(), isNotifiedForInvoices); final String asJson = mapper.writeValueAsString(invoiceEmailJson); Assert.assertEquals(asJson, "{\"accountId\":\"" + accountId + "\"," + "\"isNotifiedForInvoices\":" + isNotifiedForInvoices + "," + "\"auditLogs\":null}"); final InvoiceEmailJson fromJson = mapper.readValue(asJson, InvoiceEmailJson.class); Assert.assertEquals(fromJson, invoiceEmailJson); } }
@PUT @Path("/{accountId:" + UUID_PATTERN + "}/" + EMAIL_NOTIFICATIONS) @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON) public Response getEmailNotificationsForAccount(final InvoiceEmailJson json, @PathParam("accountId") final String accountIdString, @HeaderParam(HDR_CREATED_BY) final String createdBy, @HeaderParam(HDR_REASON) final String reason, @HeaderParam(HDR_COMMENT) final String comment, @javax.ws.rs.core.Context final HttpServletRequest request) throws AccountApiException { final CallContext callContext = context.createContext(createdBy, reason, comment, request); final UUID accountId = UUID.fromString(accountIdString); final Account account = accountUserApi.getAccountById(accountId, callContext); final MutableAccountData mutableAccountData = account.toMutableAccountData(); mutableAccountData.setIsNotifiedForInvoices(json.isNotifiedForInvoices()); accountUserApi.updateAccount(accountId, mutableAccountData, callContext); return Response.status(Status.OK).build(); }