示例#1
0
    /**
     * 
     * @param PCRequest $request
     */
    public function getSiteByURLAction($request) {
        $auth = $request->getAuthHandler();
        
        if ($auth->isAuthorized()) {

            $params = $request->getParams();

            $url = $params['url'];
            $parsedUrl = parse_url($url);

            if ($parsedUrl && $parsedUrl['host']) {

                
                $site = PCMapperWebsite::getSiteWithDomain($parsedUrl['host']);
                if ($site != NULL) {
                    
                    if($site->cacheIsExpired()){
                        $site = PCMapperWebsite::recacheSiteReview($site);
                        if(isset($site) == FALSE){
                            return new PCRendererJSON(array("error" => "Something went wrong"), 500);
                        }
                    }
                    
                    $result = array();
                    $result["site"] = $site;
                    $result["last_review"] = PCMapperReview::lastReviewForSite($auth->getUserIdentifier(), $site);
                    return new PCRendererJSON($result);
                    
                    
                }
            }
            
            return new PCRendererJSON(array("error" => "Site not found"), 404);
        }
        throw new PCExceptionAuth("Auth Required", 401);
    }