/** * Update a specified ad. * * @param int $id * @return Response */ public function update($id) { try { $session = Session::get('user'); $adService = new SoapClient(Config::get('wsdl.ad'), array()); $result = $adService->getAdById(array("adId" => $id)); $ad = new Ad($result->ad); $update = Input::get('ad'); foreach ($update as $k => $v) { $ad->{$k} = $v; } if (isset($update['image']['url']) && !is_array($update['image']['url'])) { $ad->image = ImageModel::createImageModel(str_replace('api/image/', '', $update['image']['url'])); } else { if (isset($update['image']['url'])) { $ad->image = $update['image']['url']; } else { $ad->image = null; } } $times = array('availableFromTime', 'availableToTime', 'redemptionEndDate'); foreach ($times as $time) { if (isset($update[$time])) { $ad->{$time} = strtotime($update[$time]); } } $result = $adService->updateAd(array("ad" => $ad)); } catch (Exception $ex) { throw new Exception($ex->getMessage()); } }