-
app/Services/ProfileService.php
Open in GitHubuse Cache; use Illuminate\Support\Facades\Redis; use App\Transformer\Api\AccountTransformer; use League\Fractal; use League\Fractal\Serializer\ArraySerializer; use League\Fractal\Pagination\IlluminatePaginatorAdapter; use App\Profile; class ProfileService { public static function get($id) { $key = 'profile:model:' . $id; $ttl = now()->addHours(4); $res = Cache::remember($key, $ttl, function() use($id) { $profile = Profile::find($id); if(!$profile) { return false; } $fractal = new Fractal\Manager(); $fractal->setSerializer(new ArraySerializer()); $resource = new Fractal\Resource\Item($profile, new AccountTransformer()); return $fractal->createData($resource)->toArray(); }); return $res; } }
-
app/Http/Controllers/Api/ApiV1Controller.php
Open in GitHubuse App\Http\Controllers\Controller; se App\Services\{ LikeService, NotificationService, MediaPathService, PublicTimelineService, ProfileService, SearchApiV2Service, StatusService, MediaBlocklistService }; class ApiV1Controller extends Controller { // public function verifyCredentials(Request $request) { abort_if(!$request->user(), 403); $id = $request->user()->profile_id; $res = ProfileService::get($id); $res['source'] = [ 'privacy' => $res['locked'] ? 'private' : 'public', 'sensitive' => false, 'language' => null, 'note' => '', 'fields' => [] ]; return response()->json($res); } // }