Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
WIKIPEDIA
/
imaliapi
/
app
/
Http
/
Controllers
/
Api
:
AdminController.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Controllers\Api; use App\Admin; use App\Classes\CurrentPassword; use App\Classes\GenerateUserId; use App\Classes\ImageUploader; use App\Http\Controllers\Controller; use App\IaData; use App\PaymentService; use App\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Route; use Laravel\Passport\Client; class AdminController extends Controller { private $client; public function __construct() { $this->client = Client::find(4); } public function login(Request $request) { $this->validate($request, [ 'email' => 'required', 'password' => 'required' ], [ 'email.required' => 'O Campo Email é Obrigatório', 'password.required' => 'O Campo Senha é Obrigatório', ]); $params = [ 'grant_type' => 'password', 'client_id' => $this->client->id, 'client_secret' => $this->client->secret, 'username' => request('email'), 'password' => request('password'), 'provider' => 'admins', 'scope' => '*' ]; $request->request->add($params); Config::set('auth.guards.api.provider', $params['provider']); $proxy = Request::create('oauth/token', 'POST'); return Route::dispatch($proxy); } public function refresh(Request $request) { $this->validate($request, [ 'refresh_token' => 'required' ]); $params = [ 'grant_type' => 'refresh_token', 'refresh_token' => request('refresh_token'), 'client_id' => $this->client->id, 'client_secret' => $this->client->secret, 'username' => request('email'), 'password' => request('password'), 'provider' => 'admins' ]; $request->request->add($params); Config::set('auth.guards.api.provider', $params['provider']); $proxy = Request::create('oauth/token', 'POST'); return Route::dispatch($proxy); } public function logout(Request $request) { $accessToken = Auth::user()->token(); DB::table('oauth_refresh_tokens')->where('access_token_id', $accessToken->id) ->update(['revoked' => true]); $accessToken->revoke(); return response()->json([], 204); } public function saveUser(Request $request) { $generate = new GenerateUserId(); $randomString = $generate->generatedUserId(30); $user = Admin::create([ 'name' => request('name'), 'last_name' => request('last_name'), 'email' => request('email'), 'profile' => request('profile'), 'phone' => request('phone'), 'status' => 1, 'bi' => request('bi'), 'user_id' => $randomString, 'password' => bcrypt('12345678'), ]); return response()->json(['message' => 'Utilizador Adicionado com Sucesso'], 200); } public function loggedUser(Request $request) { return response()->json($request->user()); } public function getUsers() { $users = Admin::query()->get(); return response()->json(['data' => $users]); } public function deleteUser($id) { $user = Admin::query()->where('id', $id)->first(); if ($user) { $user->delete(); return response()->json(['message' => 'Utilizador removido com Sucesso']); } else { return response()->json(['message' => 'Utilizador não encontrado'], 404); } } public function updateUser(Request $request) { // return $request->all(); $user = Admin::query()->where('id', $request->id)->first(); if ($user) { $user->update([ 'name' => request('name'), 'last_name' => $request->last_name, 'email' => request('email'), 'phone' => request('phone'), 'profile' => $request->profile, 'bi' => request('bi'), 'password' => bcrypt(request('password')), ]); return response()->json(['message' => 'Dados do ' . $user->name . ' actualizados com Sucesso']); } else { return response()->json(['message' => 'Utilizador não encontrado'], 404); } } public function getUser($id) { $user = Admin::query()->where('id', $id)->first(); return response()->json($user); } public function enableOrDisable($id) { $user = Admin::query()->where('id', $id)->first(); if ($user->status == 1) { $user->update([ 'status' => 0 ]); return response()->json(['message' => 'Utilizador ' . $user->name . ' desabilitado com Sucesso!']); } else { $user->update([ 'status' => 1 ]); return response()->json(['message' => 'Utilizador ' . $user->name . ' activado com Sucesso!']); } } public function updateUserPasword(Request $request) { $user = Admin::query()->where('id', $request->id)->first(); if ($user) { if (Hash::check($request->current_password, $user->password) && $request->current_password != null) { $user->update([ 'password' => bcrypt($request->new_password) ]); return response()->json(['message' => 'Senha da conta ' . $user->email . ' actualizada com Sucesso'], 200); } else { return response()->json(['message' => 'Senha Antiga Inválida'], 400); } } else { return response()->json(['message' => 'Utilizador inválido'], 400); } } public function changePassword(Request $request) { $this->validate( $request, [ 'current_password' => ['required', new CurrentPassword()], 'new_password' => ['required', 'min:8', 'confirmed'], 'new_password_confirmation' => 'required|min:8', ], [ 'current_password.required' => 'O Campo Senha Actual é Obrigatório', 'new_password.required' => 'O Campo Nova Senha é Obrigatório', 'new_password_confirmation.required' => 'O Campo Confirmar Senha é Obrigatório', 'new_password.confirmed' => 'Senhas incompatíveis', 'current_password.min' => 'A senha deve ter 8 digitos no mínimo', 'new_password.min' => 'A senha deve ter 8 digitos no mínimo', 'new_password_confirmation.min' => 'A senha deve ter 8 digitos no mínimo' ] ); if (Hash::check($request->current_password, $request->user()->password)) { $request->user()->update([ 'password' => bcrypt($request->new_password), 'session_status' => 1 ]); return response()->json(['message' => 'Senhas Compativeis'], 200); } else { return response()->json(['message' => 'Senha Antiga Inválida'], 404); } } // PaymentServices public function createPaymentServices(Request $request) { $this->validate( $request, [ 'name' => 'required', 'logo' => 'required|file|mimes:jpeg,jpg,png|max:4096', 'billing_rate' => 'required', 'acronym' => 'required', 'unit_tax' => 'required|in:PERCENTAGE,UNIT', ], [ 'name.required' => 'Campo name é obrigatorio', 'logo.required' => 'Campo logo é obrigatorio', 'logo.file' => 'Campo logo é um ficheiro', 'logo.mimes' => 'Formato de imagem invalido, formatos permitidos jpeg,jpg,png', 'billing_rate.required' => 'Campo billing_rate e obrigatorio', 'acronym.required' => 'Campo acronym é obrigatorio', 'unit_tax.required' => 'Campo unit_tax é obrigatorio', 'unit_tax.in' => 'O tipo de taxa unitaria deve ser um tipo valido: PERCENTAGE, UNIT', ] ); $image_uploader = new ImageUploader('documents'); $payment_services = new PaymentService; $payment_services->name = $request->name; $payment_services->logo = $image_uploader->generateImageUrl($request, 'logo'); $payment_services->billing_rate = $request->billing_rate; $payment_services->acronym = $request->acronym; $payment_services->unit_tax = $request->unit_tax; if ($payment_services) { try { $payment_services->save(); return response()->json(['message' => 'Criado com sucesso!'], 200); } catch (\Exception $e) { return response()->json(['message' => 'Erro ao salvar'], 500); } } else { return response()->json(['message' => 'Nao pode registar os dados informados ja estao em uso'], 400); } } public function getPaymentServices() { $payments_services = PaymentService::query() ->select('payment_services.*') ->where('payment_services.status', '=', 1) ->orderBy('payment_services.id', 'DESC') ->get(); if ($payments_services->isEmpty()) { // return response()->json(['message' => 'Sem dados.'], 200); return response()->json(['data' => []], 200); } return response()->json(['data' => $payments_services], 200); } public function getAllPaymentServices() { $payments_services = PaymentService::query() ->select('payment_services.*') // ->where('payment_services.status', '=', 1) ->orderBy('payment_services.id', 'DESC') ->get(); if ($payments_services->isEmpty()) { // return response()->json(['message' => 'Sem dados.'], 200); return response()->json(['data' => []], 200); } return response()->json(['data' => $payments_services], 200); } public function createIAData(Request $request) { // $this->validate( // $request, // [ // 'title' => 'required', // 'img_link' => 'file|mimes:jpeg,jpg,png|max:4096', // 'info' => 'required', // ], // [ // 'title.required' => 'Campo title é obrigatorio', // 'img_link.file' => 'Campo img_link é um ficheiro', // 'img_link.mimes' => 'Formato de imagem invalido, formatos permitidos jpeg,jpg,png', // 'info.required' => 'Campo info e obrigatorio', // ] // ); $image_uploader = new ImageUploader('documents'); $ai_data = new IaData(); $ai_data->title = $request->title; if ($request->hasFile('img_link')) { $ai_data->img_link = $image_uploader->generateImageUrl($request, 'img_link'); } else { $ai_data->img_link = null; } $ai_data->info = $request->info; if ($ai_data) { try { $ai_data->save(); return response()->json(['message' => 'Registado com sucesso!'], 200); } catch (\Exception $e) { return response()->json(['message' => 'Erro ao salvar'], 500); } } else { return response()->json(['message' => 'Nao pode registar os dados informados ja estao em uso'], 400); } } public function getAllIAData() { $ai_data = IaData::query()->orderBy('id', 'asc')->get(); if ($ai_data->isEmpty()) { // return response()->json(['message' => 'Sem dados.'], 200); return response()->json(['data' => []], 200); } return response()->json(['data' => $ai_data], 200); } // public function users_transac_error(Request $request) // { // $user = User::with('imaliBusinessAccount') // ->where('users.id', $request->users_data) // ->orWhere('users.email', $request->users_data) // // ->orWhere('users.name', $request->users_data) // ->orWhere('users.phone', $request->users_data) // ->first(); // return response()->json(['data' => ['users-data' => $user]], 200); // } public function users_transac_error(Request $request) { $user = User::query() ->where('users.id', $request->users_data) ->orWhere('users.email', $request->users_data) ->orWhere('users.phone', $request->users_data) ->with([ 'imaliBusinessAccount' => function ($query) { $query->select( 'id', 'user_id', 'name', 'company_name', 'account_number', 'reference', 'balance', 'imali_account_config' ) ->with([ 'withdrawalsRequests' => function ($q) { $q->latest() ->limit(1); } ]); } ]) ->select( 'id', 'name', 'phone', 'profile', 'email' ) ->first(); return response()->json([ 'data' => [ 'user' => $user ? [ 'id' => $user->id, 'name' => $user->name, 'phone' => $user->phone, 'profile' => $user->profile, 'email' => $user->email, 'imali_business_account' => $user->imaliBusinessAccount ? [ 'name' => $user->imaliBusinessAccount->name, 'company_name' => $user->imaliBusinessAccount->company_name, 'account_number' => $user->imaliBusinessAccount->account_number, 'reference' => $user->imaliBusinessAccount->reference, 'balance' => $user->imaliBusinessAccount->balance, 'user_id' => $user->imaliBusinessAccount->user_id, 'imali_account_config' => $user->imaliBusinessAccount->imali_account_config, 'last_withdrawals' => $user->imaliBusinessAccount->withdrawalsRequests ] : null ] : null ] ], 200); } }