File manager - Edit - /var/www/html/homologBancodetalentos/app/Http/Services/UserService.php
Back
<?php namespace App\Http\Services; use Illuminate\Http\Client\ConnectionException; use Illuminate\Http\Client\PendingRequest; use Illuminate\Http\Request; use Illuminate\Support\Facades\Http; class UserService { private function identityBaseUrl(): string { return rtrim((string) env('AUTH_SERVICE_URL'), '/'); } private function correlationHeaders(): array { if (! function_exists('request') || ! request()) { return []; } $cid = request()->attributes->get('correlation_id'); return is_string($cid) && $cid !== '' ? ['X-Correlation-ID' => $cid] : []; } /** * Cliente HTTP padronizado para AUTH_SERVICE_URL: timeout, retry só em ConnectionException, * correlation ID e bypass de proxy em localhost — mesmo padrão do AuthService. * * @param array<string, string> $extraHeaders Headers que sobrescrevem os padrão (ex.: ['App' => 'siati']) */ private function client(Request $request, array $extraHeaders = []): PendingRequest { $token = $request->bearerToken(); $headers = array_merge( [ 'Accept' => 'application/json', 'App' => (string) env('APP_ID'), ], is_string($token) && $token !== '' ? ['Authorization' => 'Bearer '.$token] : [], $this->correlationHeaders(), $extraHeaders ); $pendingRequest = Http::withHeaders($headers) ->timeout((int) config('talent_bank.http_timeout_seconds', 20)) ->retry( (int) config('talent_bank.http_retry_times', 2), (int) config('talent_bank.http_retry_sleep_ms', 350), static function ($exception): bool { return $exception instanceof ConnectionException; } ); if (preg_match('#^https?://(localhost|127\.0\.0\.1)(:\d+)?(/|$)#i', $this->identityBaseUrl())) { $pendingRequest = $pendingRequest->withOptions(['proxy' => '']); } return $pendingRequest; } public function index(Request $request) { return $this->client($request)->get($this->identityBaseUrl().'/api/user/?'.$request->getQueryString()); } public function show(Request $request, $id) { return $this->client($request, ['App' => 'siati'])->get($this->identityBaseUrl().'/api/user/'.$id); } public function update(Request $request, $id) { return $this->client($request)->put($this->identityBaseUrl()."/api/user/$id", $request->all()); } public function destroy(Request $request, $id) { return $this->client($request)->delete($this->identityBaseUrl()."/api/user/$id"); } public function permission(Request $request, $id) { return $this->client($request)->put($this->identityBaseUrl()."/api/user/$id/permission", $request->all()); } public function resetPasswordDefault(Request $request, $id) { return $this->client($request)->get($this->identityBaseUrl()."/api/user/$id/reset/passwordDefault"); } public function firstAccessModifyPassword(Request $request) { return $this->client($request)->post($this->identityBaseUrl().'/api/user/modifyPassword', $request->all()); } public function changeStatus(Request $request, $id) { return $this->client($request)->put($this->identityBaseUrl()."/api/user/$id/status", $request->all()); } public function syncPermissions(Request $request, $id) { $app = is_null($request->app_id) ? env('APP_ID') : $request->app_id; return $this->client($request, ['App' => $app]) ->post($this->identityBaseUrl()."/api/user/$id/sync-permissions", $request->all()); } public function indexToOptions(Request $request, array $filters) { $filters = array_merge($filters, ['perPage' => 9999]); $response = $this->client($request)->get($this->identityBaseUrl().'/api/user/?'.http_build_query($filters)); $options = json_decode($response, true); $options = $options['data']['data']; return array_map(function ($user) { return [ 'id' => $user['id'], 'name' => $user['name'], ]; }, $options); } public function selfAssignPermission(Request $request) { return $this->client($request)->post($this->identityBaseUrl().'/api/user/permission/self-assign', $request->all()); } public function selfEdit(Request $request) { $data = $request->all(); $client = $this->client($request); if (isset($data['photo'])) { $response = $client->attach('photo', $data['photo']->getContent(), $data['photo']->getClientOriginalName()); unset($data['photo'], $data['user'], $data['talentBankUser']); foreach ($data as $key => $value) { $response = $response->attach($key, $value); } return $response->post($this->identityBaseUrl().'/api/user/self-edit'); } return $client->post($this->identityBaseUrl().'/api/user/self-edit', $data); } public function publicInfo(Request $request) { return $this->client($request)->get($this->identityBaseUrl().'/api/user/public/?'.http_build_query($request->query())); } public function getByDocument(Request $request, $document) { return $this->client($request)->get($this->identityBaseUrl().'/api/user/document/'.$document); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings