/** * Ads request by user * * @return Response */ public function requestedByUser($user_id) { try { $adService = new SoapClient(Config::get('wsdl.ad'), array()); $result = $adService->getUserRequestedAds(array("userId" => $user_id, 'numberAds' => -1, "includeRequests" => true, "includeUnapproved" => false)); if (isset($result->ad->type)) { $result = $result; } elseif (isset($result->ad)) { $result = $result->ad; } else { $result = array(); } $ads = array(); $creators = array(); foreach ($result as $k => $row) { if (is_array($row->requests->item)) { foreach ($row->requests->item as $k => $v) { $v = new Requested($v); if ($v->user->id == $user_id) { $row->request = $v; } } } else { $v = new Requested($row->requests->item); if ($v->user->id == $user_id) { $row->request = $v; } } $request = $row->request; if ($row->expired || $request->isExpired) { if ($row->request->adStatus == "EXPIRED") { $row->reqStat = "EXPIRED"; } else { if ($row->request->isCanceled) { $row->reqStat = "CANCELED"; } else { $row->reqStat = "DECLINED"; } } } else { if ($row->sold) { $row->reqStat = "RECEIVED"; } else { if ($request->isPending) { $row->reqStat = "PENDING"; } else { if ($request->accepted && $request->sent) { $row->reqStat = "SENT"; } else { if ($request->accepted) { $row->reqStat = "ACCEPTED"; } } } } } $creators[$row->creator->id] = $row->creator; $row->creator = $row->creator->id; $ads[] = $row; } return Response::json(array('ads' => $ads, 'creators' => $creators)); } catch (Exception $ex) { throw new Exception($ex->getMessage()); } }