public function remove($removeWithSubscriptions = false) { if (!$this->id) { throw new LaraMillException('Offer ID is needed to remove offer.', 403); } $offer = new \Paymill\Models\Request\Offer(); $offer->setId($this->id)->setRemoveWithSubscriptions($removeWithSubscriptions); return $this->request->delete($offer); }
/** * Edit offer amount. * * @param int $offerId * @param EditOfferAmountRequest $request * @return */ public function editOfferAmount($offerId, EditOfferAmountRequest $request) { $response = new AjaxResponse(); $offerModel = Offer::where('id', $offerId)->first(); // Make sure offer exists if (!$offerModel) { $response->setFailMessage(trans('offers.offer_not_found')); return response($response->get(), 404)->header('Content-Type', 'application/json'); } // Create paymill request $paymillRequest = new \Paymill\Request(env('PAYMILL_API_KEY')); // Create new paymill offer object and set new amount $offer = new \Paymill\Models\Request\Offer(); $offer->setId($offerModel->paymill_offer_id)->setAmount($request->get('offer_amount')); // Save on paymill $paymillResponse = $paymillRequest->update($offer); // Update offer amount in database $offerModel->amount = $request->get('offer_amount'); $offerModel->save(); // Return json response $response->setSuccessMessage(trans('offers.offer_amount_updated')); $response->addExtraFields(['offer' => Offer::countAssociatedSubscriptions()->where('offers.id', $offerId)->first()]); return response($response->get())->header('Content-Type', 'application/json'); }