@Override public BookingInfo payWithStripe(@Named("token") String token, BookingInfo bookingInfo) { ObjectifyService.begin(); logger.info("payWithStripe" + bookingInfo.getPaidPrice()); Profil profil = bookingServiceManager.getProfil(); logger.info("payWithStripe" + bookingInfo.getPaidPrice()); Route route = ofy().load().type(Route.class).id(bookingInfo.getRouteId()).now(); ContractorInfo contractorInfo = bookingServiceManager.getContractor(bookingInfo); Agent agent = ofy().load().type(Agent.class).id(contractorInfo.getAgentId()).now(); Long orderCount = agent.getOrderCount(); String orderRef = orderCount + "_" + bookingInfo.getName(); String refusal = stripePayment.charge(token, bookingInfo, profil.getStripeSecret(), orderRef); if (refusal == null) { bookingInfo = bookingServiceManager.setPayed(profil, bookingInfo, OrderStatus.PAID, orderRef); if (bookingInfo != null) { AgentInfo agentInfo = bookingServiceManager.getAgent(contractorInfo); Mailer.sendConfirmation(bookingInfo, profil, agentInfo, contractorInfo); financeManager.addPayment(bookingInfo, new Date()); ofy().save().entity(agent).now(); } } else { bookingInfo.setStripeRefusalReason(refusal); } return bookingInfo; }
@Override public List<BookingInfo> cancelBooking(BookingInfo bookingInfo, AgentInfo agentInfo) throws IllegalArgumentException { bookingServiceManager.cancel(bookingInfo); financeManager.cancel(bookingInfo.getId()); return getBookingsForAgent(agentInfo); }
@Override // @ApiMethod(name = "payment.save", httpMethod = "post") public List<FinanceInfo> savePayment(FinanceInfo financeInfo) { return financeManager.addTransfer(financeInfo); }
@Override public List<FinanceInfo> getFinances(AgentInfo agentInfo) { return financeManager.getFinance(agentInfo); }