add client api
This commit is contained in:
parent
2daf706eb1
commit
7962b26c6c
|
|
@ -38,7 +38,7 @@ public function create()
|
|||
{
|
||||
return response([
|
||||
'success' => false,
|
||||
'message' => trans('app.app.application.fill_profile_message'),
|
||||
'message' => trans('app.application.fill_profile_message'),
|
||||
],400);
|
||||
}
|
||||
//validate legalization number exists
|
||||
|
|
@ -136,7 +136,7 @@ public function apply()
|
|||
{
|
||||
return response([
|
||||
'success' => false,
|
||||
'message' => trans('app.app.application.required_docs_message')
|
||||
'message' => trans('app.application.required_docs_message')
|
||||
],422);
|
||||
}
|
||||
|
||||
|
|
@ -146,7 +146,7 @@ public function apply()
|
|||
//todo send email to operators
|
||||
return response([
|
||||
'success' => true,
|
||||
'message' => trans('app.app.application.app_success_message')
|
||||
'message' => trans('app.application.app_success_message')
|
||||
]);
|
||||
|
||||
}
|
||||
|
|
|
|||
30
app/Http/Controllers/API/AuthController.php → app/Http/Controllers/API/ClientController.php
Executable file → Normal file
30
app/Http/Controllers/API/AuthController.php → app/Http/Controllers/API/ClientController.php
Executable file → Normal file
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Http\Controllers\API;
|
||||
|
||||
use App\Http\Requests\API\AddClientRequest;
|
||||
use App\Http\Requests\API\LoginRequest;
|
||||
use App\Http\Requests\API\RegisterRequest;
|
||||
use App\Http\Requests\API\ClientRequest;
|
||||
|
|
@ -19,7 +20,7 @@
|
|||
use App\Http\Controllers\Controller;
|
||||
|
||||
|
||||
class AuthController extends Controller
|
||||
class ClientController extends Controller
|
||||
{
|
||||
public function login(LoginRequest $request){
|
||||
|
||||
|
|
@ -59,7 +60,7 @@ public function login(LoginRequest $request){
|
|||
return response()->json(['message' => Lang::get('auth.email_not_found')], 404);
|
||||
}
|
||||
|
||||
public function register(RegisterRequest $request){
|
||||
public function signup(RegisterRequest $request){
|
||||
$client = new Client($request->only(['email','firstname','lastname']));
|
||||
$client->password = Hash::make($request->input('password'));
|
||||
|
||||
|
|
@ -197,7 +198,7 @@ public function updatePassword(Request $request) {
|
|||
catch(\Exception $e){
|
||||
return response()->json([
|
||||
'message' => $e->getMessage()
|
||||
], 500);
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -220,6 +221,27 @@ public function updateClient(ClientRequest $request){
|
|||
|
||||
return response()->json([
|
||||
'message' => trans('auth.app.account.update_profile_error')
|
||||
],500);
|
||||
],400);
|
||||
}
|
||||
|
||||
public function registerClient(AddClientRequest $request)
|
||||
{
|
||||
$client = new Client($request->only(['email','firstname','lastname']));
|
||||
$client->password = Hash::make($request->input('password'));
|
||||
$client->is_verified = true;
|
||||
$client->account_id = $request->user()->account_id;
|
||||
|
||||
if($client->save()){
|
||||
return ClientResource::make($client);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'message' => trans('auth.app.account.update_profile_error')
|
||||
],400);
|
||||
|
||||
}
|
||||
|
||||
public function accountClients(){
|
||||
return ClientResource::collection($this->user()->account->clients);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Requests\API;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class AddClientRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, mixed>
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => 'required|email|unique:clients,email',
|
||||
'password' => 'required|min:6',
|
||||
'firstname' => 'required|string|max:255',
|
||||
'lastname' => 'required|string|max:255',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -26,8 +26,8 @@ public function rules()
|
|||
return [
|
||||
'email' => 'required|email|unique:clients,email',
|
||||
'password' => 'required|min:6',
|
||||
'firstname' => 'required',
|
||||
'lastname' => 'required',
|
||||
'firstname' => 'required|string|max:255',
|
||||
'lastname' => 'required|string|max:255',
|
||||
'account_type' => 'required|in:company,business',
|
||||
'country' => 'required|numeric|gt:0',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
use App\Http\Controllers\API\ApplicationController;
|
||||
use App\Http\Controllers\API\AuthController;
|
||||
use App\Http\Controllers\API\ClientController;
|
||||
use App\Http\Controllers\API\ResourceController;
|
||||
use App\Http\Controllers\API\AccountController;
|
||||
use App\Http\Controllers\API\TicketController;
|
||||
|
|
@ -15,11 +15,11 @@
|
|||
*/
|
||||
|
||||
Route::middleware(['localization'])->group(function (){
|
||||
Route::post('/register', [AuthController::class, 'register']);
|
||||
Route::post('/login', [AuthController::class, 'login'])->middleware("throttle:30,30");
|
||||
Route::post('/reset-password', [AuthController::class, 'updatePassword']);
|
||||
Route::post('/forgot-password', [AuthController::class, 'sendPasswordResetLinkEmail']);
|
||||
Route::post('/verify-email', [AuthController::class, 'verifyEmail']);
|
||||
Route::post('/register', [ClientController::class, 'signup']);
|
||||
Route::post('/login', [ClientController::class, 'login'])->middleware("throttle:30,30");
|
||||
Route::post('/reset-password', [ClientController::class, 'updatePassword']);
|
||||
Route::post('/forgot-password', [ClientController::class, 'sendPasswordResetLinkEmail']);
|
||||
Route::post('/verify-email', [ClientController::class, 'verifyEmail']);
|
||||
Route::get('/countries', [ResourceController::class, 'countries']);
|
||||
Route::get('/categories', [ResourceController::class, 'categories']);
|
||||
Route::get('/faqs', [ResourceController::class, 'faqs']);
|
||||
|
|
@ -29,9 +29,10 @@
|
|||
/**
|
||||
* Client endpoints
|
||||
*/
|
||||
Route::get('/client', [AuthController::class, 'client']);
|
||||
Route::post('/logout', [AuthController::class, 'logout']);
|
||||
Route::post('/update-client', [AuthController::class, 'updateClient']);
|
||||
Route::get('/client', [ClientController::class, 'client']);
|
||||
Route::post('/logout', [ClientController::class, 'logout']);
|
||||
Route::post('/update-client', [ClientController::class, 'updateClient']);
|
||||
|
||||
/**
|
||||
* Account endpoints
|
||||
*/
|
||||
|
|
@ -39,7 +40,8 @@
|
|||
Route::get('/',[AccountController::class, 'account']);
|
||||
Route::put('contacts',[AccountController::class,'storeContacts']);
|
||||
Route::put('bank',[AccountController::class,'storeBankAccount']);
|
||||
|
||||
Route::post('add-client', [ClientController::class, 'registerClient']);
|
||||
Route::get('clients', [ClientController::class, 'accountClients']);
|
||||
Route::put('profile',[AccountController::class,'storeProfile'])->defaults('_config',[
|
||||
'request_type' => 'profile'
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -460,6 +460,153 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"/api/account/clients": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Account"
|
||||
],
|
||||
"summary": " - Get account clients",
|
||||
"operationId": "e809af65c12695106f3cbcf67011e2c2",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK",
|
||||
"content": {
|
||||
"application/json":{
|
||||
"schema":{
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "Unauthorized"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"bearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/account/add-client": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Account"
|
||||
],
|
||||
"summary": " - Add account user",
|
||||
"operationId": "a718f172ff3ac464d723835815f8fb77",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "X-Localization",
|
||||
"in": "header",
|
||||
"description": "Localization",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"examples": {
|
||||
"ru": {
|
||||
"summary": "Russian localization",
|
||||
"value": "ru"
|
||||
},
|
||||
"en": {
|
||||
"summary": "English localization",
|
||||
"value": "en"
|
||||
},
|
||||
"tm": {
|
||||
"summary": "Turkmen localization",
|
||||
"value": "tm"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"firstname": {
|
||||
"type": "string"
|
||||
},
|
||||
"lastname": {
|
||||
"type": "string"
|
||||
},
|
||||
"email": {
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"example": {
|
||||
"firstname": "Mahri",
|
||||
"lastname": "Ilmedova",
|
||||
"email": "ilmedovamahri@gmail.com",
|
||||
"password": 12345678,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "OK",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"token": {
|
||||
"type": "string"
|
||||
},
|
||||
"client": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"firstname": {
|
||||
"type": "string"
|
||||
},
|
||||
"lastname": {
|
||||
"type": "string"
|
||||
},
|
||||
"email": {
|
||||
"type": "string"
|
||||
},
|
||||
"is_verified": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"422": {
|
||||
"description": "Validation Error",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string"
|
||||
},
|
||||
"errors": {
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/api/login": {
|
||||
"post": {
|
||||
"tags": [
|
||||
|
|
|
|||
Loading…
Reference in New Issue