pixelfed/app/Http/Controllers/Api/ApiV1Controller.php

57 lines
1.3 KiB
PHP
Raw Normal View History

2019-09-14 01:10:22 +00:00
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
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 App\Services\NotificationService;
class ApiV1Controller extends Controller {
public function apps(Request $request)
{
2019-09-14 01:54:38 +00:00
abort_if(!config('pixelfed.oauth_enabled'), 404);
2019-09-14 01:10:22 +00:00
$this->validate($request, [
'client_name' => 'required',
'redirect_uris' => 'required',
'scopes' => 'nullable',
'website' => 'nullable'
]);
$client = Passport::client()->forceFill([
'user_id' => null,
'name' => e($request->client_name),
'secret' => Str::random(40),
'redirect' => $request->redirect_uris,
'personal_access_client' => false,
'password_client' => false,
'revoked' => false,
]);
2019-09-14 01:54:38 +00:00
2019-09-14 01:10:22 +00:00
$client->save();
2019-09-14 01:54:38 +00:00
2019-09-14 01:10:22 +00:00
$res = [
'id' => $client->id,
'name' => $client->name,
'website' => null,
'redirect_uri' => $client->redirect,
'client_id' => $client->id,
'client_secret' => $client->secret,
'vapid_key' => null
];
return $res;
}
}