From 7678ed9298b74f1ee801e8cbac3c2ee422c77ede Mon Sep 17 00:00:00 2001 From: Witel Group Date: Tue, 1 Oct 2024 13:12:12 +0000 Subject: [PATCH] changed avatar url in both old and new EDIT APIs| removed db raw from road items report| changed url in Randd --- app/Http/Controllers/NewRandDCtrl.php | 3 ++- app/Http/Controllers/UserController.php | 3 ++- .../Controllers/V2/Dashboard/RoadItemsReportController.php | 2 -- app/Http/Controllers/V3/ProfileController.php | 7 +++++-- app/Models/User.php | 4 +++- routes/web.php | 4 ++-- tests/Feature/V3/Profile/EditTest.php | 5 +---- tests/Feature/V3/Profile/InfoTest.php | 3 ++- 8 files changed, 17 insertions(+), 14 deletions(-) diff --git a/app/Http/Controllers/NewRandDCtrl.php b/app/Http/Controllers/NewRandDCtrl.php index 8eaf210b..502cafec 100644 --- a/app/Http/Controllers/NewRandDCtrl.php +++ b/app/Http/Controllers/NewRandDCtrl.php @@ -16,6 +16,7 @@ use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Auth; use App\Models\RandDVoting; use Illuminate\Support\Str; +use Illuminate\Support\Facades\URL; use App\Models\RandDVotingPaperAnswer; class NewRandDCtrl extends Controller @@ -125,7 +126,7 @@ class NewRandDCtrl extends Controller $item->setAttribute('Voting', true); $getVote = RandDVoting::where('project_id', $item->id)->where('status', '2')->first(); if (! RandDVotingPaperAnswer::where('vote_id', $getVote->id)->where('user_id', Auth::user()->id)->first()) { - $url = 'https://rms.rmto.ir/randd/voting/' . $getVote->id; + $url = URL::to('/randd/voting') . '/'. $getVote->id; $item->setAttribute('urlVoting', $url); $item->setAttribute('allowVoting', true); diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 178c6673..beb423c8 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -13,6 +13,7 @@ use App\Models\User; use Carbon\Carbon; use App\Models\City; use App\Models\Province; +use Illuminate\Support\Facades\File; use App\Models\EdarateShahri; use App\Models\EdarateOstani; use Cache; @@ -2111,7 +2112,7 @@ class UserController extends Controller $user->save(); if ($request->has('avatar')) { - Storage::delete('public/' . $user->avatar); + File::delete($user->avatar); $destinationPath = 'avatar/' . $user->username; $filename = time() .".". $request->file('avatar')->getClientOriginalExtension(); $request->file('avatar')->storeAs($destinationPath, $filename, 'public'); diff --git a/app/Http/Controllers/V2/Dashboard/RoadItemsReportController.php b/app/Http/Controllers/V2/Dashboard/RoadItemsReportController.php index af019e19..7b6cb316 100644 --- a/app/Http/Controllers/V2/Dashboard/RoadItemsReportController.php +++ b/app/Http/Controllers/V2/Dashboard/RoadItemsReportController.php @@ -90,9 +90,7 @@ class RoadItemsReportController extends Controller $province = $request->province_id; $all = array(); $all = DB::select( - DB::raw( 'SELECT sub_item AS t,COUNT(*) AS c,CAST(SUM(CASE WHEN sub_item_data>0 THEN sub_item_data ELSE ABS(sub_item_data) END) AS UNSIGNED) AS s,province_id AS p, edarat_id AS ci FROM road_items_projects WHERE item = ' . $item . ' AND province_id = ' . $province . ' AND activity_date_time BETWEEN "' . $from_date . '" AND "' . $date_to . '" and status = 1 GROUP BY ci, sub_item' - ) ); $items_fa = InfoItem::where('item', $item)->get(); foreach ($all as $value) { diff --git a/app/Http/Controllers/V3/ProfileController.php b/app/Http/Controllers/V3/ProfileController.php index 12268c40..4ba5d36b 100644 --- a/app/Http/Controllers/V3/ProfileController.php +++ b/app/Http/Controllers/V3/ProfileController.php @@ -9,6 +9,7 @@ use App\Http\Requests\V3\Profile\EditRequest; use App\Http\Traits\ApiResponse; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Storage; @@ -40,11 +41,13 @@ class ProfileController extends Controller if ($request->has('avatar')) { if ($user->avatar) { - FileFacade::delete($user->avatar); + File::delete($user->avatar); } + $destinationPath = 'avatar/' . $user->username; $filename = time() .".". $request->file('avatar')->getClientOriginalExtension(); - $avatar = FileFacade::save($request->avatar, $destinationPath, $filename); + $request->file('avatar')->storeAs($destinationPath, $filename, 'public'); + $avatar = 'storage/'.$destinationPath ."/". $filename; } $user->update([ diff --git a/app/Models/User.php b/app/Models/User.php index 12b8149a..fd7d404d 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -13,6 +13,7 @@ use Spatie\Permission\Traits\HasPermissions; use Illuminate\Database\Eloquent\Factories\HasFactory; use App\Models\UserActivityLog; use App\Models\LogList; +use Illuminate\Support\Facades\URL; class User extends Authenticatable { @@ -232,7 +233,8 @@ class User extends Authenticatable public function avatarUrl(): ?string { + $avatar = $this->attributes['avatar']; - return $avatar == null ? null : Storage::disk('public')->url($avatar); + return $avatar == null ? null : URL::to('/') . '/' . $avatar; } } \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index b6036336..fda4cb67 100644 --- a/routes/web.php +++ b/routes/web.php @@ -698,7 +698,7 @@ Route::get('/profile', function () { // })->middleware(['auth', 'confirmUser']); // Route::get('/winter-camp', 'View\WinterCampController@view')->middleware(['auth', 'confirmUser']); -// Route::get('/randd/voting/{id}', 'View\RandDController@showVoteSinglePage'); +Route::get('/randd/voting/{id}', 'View\RandDController@showVoteSinglePage'); Route::get('bi', 'View\BiController@show'); // Route::get('reports', function () { @@ -806,7 +806,7 @@ Route::post('webapi/cmms/search', 'Api\CMMSController@search'); // //// RandD Voting API // Route::post('webapi/randd/voting/{id}/start', 'Api\RandDVoting\AdminVoterController@startVoting'); // // Route::post('webapi/randd/voting/{id}/rejectProject', 'Api\RandDVoting\AdminVoterController@rejectProject'); -// Route::middleware('cors:api')->post('webapi/randd/voting/{id}/store', 'Api\RandDVoting\VoterController@storeVoting'); +Route::middleware('cors:api')->post('webapi/randd/voting/{id}/store', 'Api\RandDVoting\VoterController@storeVoting'); // Route::get('webapi/randd/voting/{id}/result', 'Api\RandDVoting\VoterController@showResult'); // Route::post('webapi/randd/voting/{id}/end', 'Api\RandDVoting\AdminVoterController@endVoting'); diff --git a/tests/Feature/V3/Profile/EditTest.php b/tests/Feature/V3/Profile/EditTest.php index 6f2b60c7..7d370824 100644 --- a/tests/Feature/V3/Profile/EditTest.php +++ b/tests/Feature/V3/Profile/EditTest.php @@ -208,10 +208,7 @@ class EditTest extends TestCase $avatar = UploadedFile::fake()->create('image.jpg', 1024); - FileFacade::shouldReceive('save') - ->andReturn('image.jpg'); - - FileFacade::shouldReceive('delete'); + Storage::fake(); $data = [ 'first_name' => $this->faker->firstName, diff --git a/tests/Feature/V3/Profile/InfoTest.php b/tests/Feature/V3/Profile/InfoTest.php index be61ba4f..4f145123 100644 --- a/tests/Feature/V3/Profile/InfoTest.php +++ b/tests/Feature/V3/Profile/InfoTest.php @@ -5,6 +5,7 @@ namespace Tests\Feature\V3\Profile; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; +use Illuminate\Support\Facades\URL; use Illuminate\Support\Facades\Storage; use Tests\TestCase; @@ -33,7 +34,7 @@ class InfoTest extends TestCase 'degree' => $user->degree, 'mobile' => $user->mobile, # an accessor has been defined in User model for User's avatar - 'avatar' => Storage::disk('public')->url($user->avatar), + 'avatar' => URL::to('/') . '/' . $user->avatar, ] ]); }