run($query); } protected function run($query) { if($profile = Profile::whereUsername($query)->first()) { $fractal = new Fractal\Manager(); $fractal->setSerializer(new ArraySerializer()); $resource = new Fractal\Resource\Item($profile, new AccountTransformer()); return $fractal->createData($resource)->toArray(); } $url = WebfingerUrl::generateWebfingerUrl($query); if(!Helpers::validateUrl($url)) { return []; } $res = Zttp::get($url); $webfinger = $res->json(); if(!isset($webfinger['links'])) { return []; } $profile = Helpers::profileFetch($webfinger['links'][0]['href']); $fractal = new Fractal\Manager(); $fractal->setSerializer(new ArraySerializer()); $resource = new Fractal\Resource\Item($profile, new AccountTransformer()); $res = $fractal->createData($resource)->toArray(); return $res; } }