Răsfoiți Sursa

Update ApiController

Daniel Supernault 5 ani în urmă
părinte
comite
ec24dec2df
1 a modificat fișierele cu 25 adăugiri și 2 ștergeri
  1. 25 2
      app/Http/Controllers/Api/ApiV1Controller.php

+ 25 - 2
app/Http/Controllers/Api/ApiV1Controller.php

@@ -8,18 +8,32 @@ use Illuminate\Support\Str;
 use App\Jobs\StatusPipeline\StatusDelete;
 use Laravel\Passport\Passport;
 use Auth, Cache, DB;
-use Carbon\Carbon;
 use App\{
     Like,
     Media,
     Profile,
     Status
 };
+use League\Fractal;
+use App\Transformer\Api\{
+    AccountTransformer,
+    RelationshipTransformer,
+    StatusTransformer,
+};
+use League\Fractal\Serializer\ArraySerializer;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
 
 use App\Services\NotificationService;
 
-class ApiV1Controller extends Controller {
+class ApiV1Controller extends Controller 
+{
+	protected $fractal;
 
+	public function __construct()
+	{
+		$this->fractal = new Fractal\Manager();
+		$this->fractal->setSerializer(new ArraySerializer());
+	}
 	public function apps(Request $request)
 	{
 		abort_if(!config('pixelfed.oauth_enabled'), 404);
@@ -54,4 +68,13 @@ class ApiV1Controller extends Controller {
         ];
         return $res;
 	}
+
+	public function accountById(Request $request, $id)
+	{
+		$profile = Profile::whereNull('status')->findOrFail($id);
+		$resource = new Fractal\Resource\Item($profile, new AccountTransformer());
+		$res = $this->fractal->createData($resource)->toArray();
+
+		return response()->json($res);
+	}
 }