/** * Ads giving by user * * @return Response */ public function byUser($user_id) { try { $session = Session::get('user'); if ($user_id == $session['data']->id) { $includeUnapproved = true; } else { $includeUnapproved = false; } $adService = new SoapClient(Config::get('wsdl.ad'), array()); $userService = new SoapClient(Config::get('wsdl.user'), array()); $result = $adService->getUserAds(array("userId" => $user_id, 'numberAds' => 0, "includeRequests" => true, "includeUnapproved" => $includeUnapproved)); if (isset($result->ad->type)) { $ads = $result; } elseif (isset($result->ad)) { $ads = $result->ad; } else { $ads = array(); } $return = array(); foreach ($ads as $k => $ad) { $ad = new Ad($ad); if (isset($ad->requests->item) && is_array($ad->requests->item)) { foreach ($ad->requests->item as $k => $v) { $ad->requests->item[$k] = new Requested($v); } } else { if (isset($ad->requests->item->type)) { $ad->requests->item = array(new Requested($ad->requests->item)); } } if (!$ad->online) { if ($ad->approved) { $ad->status = "APPROVED"; } else { if ($ad->approval == null) { $ad->status = "PENDING"; } else { $ad->status = "DECLINED"; } } } elseif ($ad->sold) { $requestor = $ad->getAcceptedRequest()->user; $request = $ad->getAcceptedRequest(); if (isset($requestor->avatar)) { $ad->requestor = $requestor->avatar->id; } else { $ad->requestor = null; } if (isset($request)) { $ad->request = $request; } else { $ad->request = null; } $ad->status = "SOLD"; } elseif ($ad->expired) { $ad->status = "EXPIRED"; } elseif (!$ad->hasActiveRequest()) { $ad->status = "NO_REQUESTS"; } elseif ($ad->hasSentRequest()) { $requestor = $ad->getAcceptedRequest()->user; if (isset($requestor->avatar)) { $ad->requestor = $requestor->avatar->id; } else { $ad->requestor = null; } if (isset($request)) { $ad->request = $request; } else { $ad->request = null; } $ad->status = "SENT"; } elseif ($ad->hasAcceptedRequest()) { $requestor = $ad->getAcceptedRequest()->user; if (isset($requestor->avatar)) { $ad->requestor = $requestor->avatar->id; } else { $ad->requestor = null; } if (isset($request)) { $ad->request = $request; } else { $ad->request = null; } $ad->status = "SELECTED"; } else { $ad->status = "ACTIVE"; } $return[] = $ad; } return Response::json($return); } catch (Exception $ex) { throw new Exception($ex->getMessage()); } }