Merge branch 'feature/Cleaning' into 'develop'
Feature/cleaning See merge request witel-back-end/crm!12
This commit is contained in:
@@ -21,18 +21,12 @@ class RoleManagementController extends Controller
|
||||
*/
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$columns = array('id', 'name', 'name_fa');
|
||||
|
||||
$allowedFilters = $columns;
|
||||
$allowedSortings = $columns;
|
||||
$allowedRelations = array('permissions:id,name_fa');
|
||||
|
||||
$data = DataTableFacade::run(
|
||||
Role::query(),
|
||||
$request,
|
||||
allowedFilters: $allowedFilters,
|
||||
allowedSortings: $allowedSortings,
|
||||
allowedRelations: $allowedRelations
|
||||
allowedFilters: array('id', 'name', 'name_fa'),
|
||||
allowedSortings: array('id', 'name', 'name_fa'),
|
||||
allowedRelations: array('permissions:id,name_fa')
|
||||
);
|
||||
|
||||
return response()->json($data);
|
||||
|
||||
@@ -23,22 +23,15 @@ class UserManagementController extends Controller
|
||||
|
||||
public function index(Request $request): JsonResponse
|
||||
{
|
||||
$columns = array('id', 'full_name', 'username', 'province_id', 'phone_number', 'national_id', 'telephone_id');
|
||||
|
||||
$allowedFilters = $columns;
|
||||
|
||||
$allowedSortings = $columns;
|
||||
|
||||
$allowedRelations = array('roles:id,name_fa');
|
||||
|
||||
$query = User::query()->where('username', "<>", "witel");
|
||||
|
||||
$data = DataTableFacade::run(
|
||||
$query,
|
||||
$request,
|
||||
allowedFilters: $allowedFilters,
|
||||
allowedSortings: $allowedSortings,
|
||||
allowedRelations: $allowedRelations);
|
||||
allowedFilters: array('id', 'full_name', 'username', 'province_id', 'phone_number', 'national_id', 'telephone_id'),
|
||||
allowedSortings: array('id', 'full_name', 'username', 'province_id', 'phone_number', 'national_id', 'telephone_id'),
|
||||
allowedRelations: array('roles:id,name_fa')
|
||||
);
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
@@ -83,10 +76,6 @@ class UserManagementController extends Controller
|
||||
DB::transaction(function () use ($request, $user) {
|
||||
$province = Province::query()->find($request->province_id);
|
||||
|
||||
$avatar = $request->avatar ?
|
||||
$user->storeFile($request->file('avatar'), $request->username)
|
||||
: null;
|
||||
|
||||
$user->update([
|
||||
'full_name' => $request->full_name,
|
||||
'username' => $request->username,
|
||||
@@ -96,7 +85,6 @@ class UserManagementController extends Controller
|
||||
'phone_number' => $request->phone_number,
|
||||
'province_id' => $province->id,
|
||||
'province_fa' => $province->name,
|
||||
'avatar' => $avatar,
|
||||
'email' => $request->email,
|
||||
]);
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ class CallController extends Controller
|
||||
{
|
||||
$call = DB::transaction(function () use ($request)
|
||||
{
|
||||
$operator = User::query()->where('telephone_id', $request->extension)->first();
|
||||
$operator = User::query()->where('telephone_id', '=', $request->extension)->first();
|
||||
|
||||
$call = Call::query()->create([
|
||||
'telephone_id' => $request->extension,
|
||||
@@ -46,7 +46,7 @@ class CallController extends Controller
|
||||
'operator_full_name' => $operator->full_name
|
||||
]);
|
||||
|
||||
CallHistory::recordHistory($call, CallEvents::CALL_CREATED);
|
||||
CallHistory::recordHistory($call, CallEvents::CALL_CREATED->value);
|
||||
|
||||
return $call;
|
||||
});
|
||||
@@ -63,17 +63,17 @@ class CallController extends Controller
|
||||
}
|
||||
catch (NotificationServerNotRespondingException $exception)
|
||||
{
|
||||
CallHistory::recordHistory($call, CallEvents::NOTIFICATION_SERVER_NOT_RESPONDING);
|
||||
CallHistory::recordHistory($call, CallEvents::NOTIFICATION_SERVER_NOT_RESPONDING->value);
|
||||
throw $exception;
|
||||
}
|
||||
catch (OperatorOfflineException $exception)
|
||||
{
|
||||
CallHistory::recordHistory($call, CallEvents::OPERATOR_IS_OFFLINE);
|
||||
CallHistory::recordHistory($call, CallEvents::OPERATOR_IS_OFFLINE->value);
|
||||
throw $exception;
|
||||
}
|
||||
catch (OperatorNotConnectedException $exception)
|
||||
{
|
||||
CallHistory::recordHistory($call, CallEvents::OPERATOR_COULD_NOT_CONNECT);
|
||||
CallHistory::recordHistory($call, CallEvents::OPERATOR_COULD_NOT_CONNECT->value);
|
||||
throw $exception;
|
||||
}
|
||||
}
|
||||
@@ -81,11 +81,11 @@ class CallController extends Controller
|
||||
public function update(UpdateRequest $request, Call $call): JsonResponse
|
||||
{
|
||||
DB::transaction(function () use ($request, $call) {
|
||||
$operator = User::query()->where('telephone_id', $call->telephone_id)->first();
|
||||
$operator = User::query()->where('telephone_id', '=', $call->telephone_id)->first();
|
||||
|
||||
$category = Category::query()->where([
|
||||
['category_id', $request->category_id],
|
||||
['subcategory_id', $request->subcategory_id]
|
||||
['category_id', '=', $request->category_id],
|
||||
['subcategory_id', '=', $request->subcategory_id]
|
||||
])->first();
|
||||
|
||||
$call->update([
|
||||
@@ -101,7 +101,7 @@ class CallController extends Controller
|
||||
'description' => $request->description,
|
||||
]);
|
||||
|
||||
$event_id = CallEvents::OPERATOR_STORED_CALL_DATA;
|
||||
$event_id = CallEvents::OPERATOR_STORED_CALL_DATA->value;
|
||||
|
||||
$event_name = Event::query()->find($event_id)->first()->name;
|
||||
|
||||
@@ -123,12 +123,20 @@ class CallController extends Controller
|
||||
$size = $request->size ?? config('global_variables.MAX_RECORDS_COUNT');
|
||||
|
||||
$calls_data = Call::query()
|
||||
->when($phone_number, function ($query) use ($phone_number) {
|
||||
return $query->where('caller_phone_number', $phone_number);
|
||||
})->orderBy('created_at', 'DESC')
|
||||
->when($phone_number, fn($query, $phone_number) => $query->where('phone_number', '=', $phone_number))
|
||||
->orderBy('created_at', 'DESC')
|
||||
->limit($size)
|
||||
->get();
|
||||
|
||||
return $this->successResponse(CallResource::collection($calls_data));
|
||||
}
|
||||
|
||||
public function search(Request $request): JsonResponse
|
||||
{
|
||||
$results = CallHistory::query()
|
||||
->where('caller_phone_number', '=', $request->caller_phone_number)
|
||||
->get();
|
||||
|
||||
return $this->successResponse($results);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,12 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\ChangePasswordRequest;
|
||||
use App\Facades\File\FileFacade;
|
||||
use App\Http\Requests\Profile\ChangeAvatarRequest;
|
||||
use App\Http\Requests\Profile\ChangePasswordRequest;
|
||||
use App\Http\Resources\Admin\UserResource;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Session;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -31,6 +34,19 @@ class ProfileController extends Controller
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
public function changeAvatar(ChangeAvatarRequest $request): JsonResponse
|
||||
{
|
||||
$user = auth()->user();
|
||||
if ($user->avatar){
|
||||
FileFacade::delete($user->avatar, true);
|
||||
}
|
||||
$user->update([
|
||||
'avatar' => FileFacade::save($request->file('avatar'), 'users/avatars/' . $request->username)
|
||||
]);
|
||||
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
public function online(Request $request): JsonResponse
|
||||
{
|
||||
User::query()->where('telephone_id', '=', $request->telephone_id)->update([
|
||||
@@ -41,9 +57,11 @@ class ProfileController extends Controller
|
||||
|
||||
public function offline(Request $request): JsonResponse
|
||||
{
|
||||
User::query()->where('telephone_id', '=', $request->telephone_id)->update([
|
||||
$user= User::query()->where('telephone_id', '=', $request->telephone_id)->first();
|
||||
$user->update([
|
||||
'is_online' => false,
|
||||
]);
|
||||
Session::query()->where('user_id','=',$user->id)->delete();
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class LoginRequest extends FormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'username' => 'required|exists:users,username',
|
||||
'username' => 'required|exists:users,username',
|
||||
'password' => 'required|string',
|
||||
'telephone_id' => 'required|string'
|
||||
];
|
||||
|
||||
@@ -14,12 +14,7 @@ class UpdateRequest extends FormRequest
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
$operator_telephone_id = auth()->user()->telephone_id;
|
||||
|
||||
if ($operator_telephone_id == $this->call->telephone_id) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return auth()->user()->telephone_id == $this->call->telephone_id;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -40,7 +35,12 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
return [
|
||||
function (Validator $validator) {
|
||||
if ($this->somethingElseIsInvalid()) {
|
||||
$condition = Category::query()->where([
|
||||
['category_id', '=', $this->category_id],
|
||||
['subcategory_id', '=', $this->subcategory_id]
|
||||
])->exists();
|
||||
|
||||
if (!$condition) {
|
||||
$validator->errors()->add(
|
||||
'category',
|
||||
__('messages.combination_of_category_and_subcategory_does_not_exist')
|
||||
@@ -49,19 +49,4 @@ class UpdateRequest extends FormRequest
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
private function somethingElseIsInvalid(): bool
|
||||
{
|
||||
$category_id = $this->category_id;
|
||||
$subcategory_id = $this->subcategory_id;
|
||||
|
||||
if ($category_id && $subcategory_id) {
|
||||
return !Category::query()->where([
|
||||
['category_id', $category_id],
|
||||
['subcategory_id', $subcategory_id]
|
||||
])->exists();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
28
app/Http/Requests/Profile/ChangeAvatarRequest.php
Normal file
28
app/Http/Requests/Profile/ChangeAvatarRequest.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Profile;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class ChangeAvatarRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
|
||||
*/
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'avatar' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
namespace App\Http\Requests\Profile;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
11
app/Models/Session.php
Normal file
11
app/Models/Session.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Session extends Model
|
||||
{
|
||||
protected $guarded = [];
|
||||
protected $table = 'sessions';
|
||||
}
|
||||
@@ -27,6 +27,7 @@ Route::prefix('server')->group(function () {
|
||||
->group(function () {
|
||||
Route::get('/info', 'info')->name('info');
|
||||
Route::post('/change_password', 'changePassword')->name('changePassword');
|
||||
Route::post('/change_avatar', 'changeAvatar')->name('changeAvatar');
|
||||
Route::get('/permissions', 'permissions')->name('permissions');
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user