From 92962aac17f6494b05ac663e9292f91ebb7ea426 Mon Sep 17 00:00:00 2001 From: Peter Papp Date: Sat, 27 Feb 2021 09:44:43 +0100 Subject: [PATCH] - emoji refactoring --- .../FileFunctions/EditItemsController.php | 5 +-- app/Http/Tools/Editor.php | 45 +++++++++---------- app/Models/Folder.php | 2 +- ..._15_171328_create_file_manager_folders.php | 2 +- tests/Feature/FolderTest.php | 35 ++++++++++++++- 5 files changed, 59 insertions(+), 30 deletions(-) diff --git a/app/Http/Controllers/FileFunctions/EditItemsController.php b/app/Http/Controllers/FileFunctions/EditItemsController.php index 48844099..b34fe665 100644 --- a/app/Http/Controllers/FileFunctions/EditItemsController.php +++ b/app/Http/Controllers/FileFunctions/EditItemsController.php @@ -116,9 +116,8 @@ class EditItemsController extends Controller } // If request have a change folder icon values set the folder icon - if ($request->type === 'folder' && $request->filled('icon')) { - - Editor::set_folder_icon($request->folder_icon, $id); + if ($request->type === 'folder' && $request->filled('emoji')) { + Editor::set_folder_icon($request, $id); } // Rename Item diff --git a/app/Http/Tools/Editor.php b/app/Http/Tools/Editor.php index 821511f0..0f8a9ea9 100644 --- a/app/Http/Tools/Editor.php +++ b/app/Http/Tools/Editor.php @@ -29,40 +29,37 @@ class Editor /** * Store folder icon * - * @param $icon - * @param $unique_id - * @param $shared + * @param $request + * @param $id */ - public static function set_folder_icon($icon, $unique_id, $shared = null) + public static function set_folder_icon($request, $id) { - $user_id = is_null($shared) ? Auth::id() : $shared->user_id; - // Get folder - $folder = Folder::where('user_id', $user_id) - ->where('unique_id', $unique_id) - ->first(); + $folder = Folder::find($id); // Set default folder icon - if ($icon === 'default') { - $folder->icon_emoji = null; - $folder->icon_color = null; + if ($request->emoji === 'default') { + $folder->update([ + 'emoji' => null, + 'color' => null, + ]); } - // If request have emoji set folder icon emoji - if (isset($icon['emoji'])) { - $folder->icon_emoji = $icon['emoji']; - $folder->icon_color = null; + // Set emoji + if ($request->filled('emoji')) { + $folder->update([ + 'emoji' => $request->emoji, + 'color' => null, + ]); } - // If request have color set folder icon color - if (isset($icon['color'])) { - $folder->icon_emoji = null; - $folder->icon_color = $icon['color']; + // Set color + if ($request->filled('color')) { + $folder->update([ + 'emoji' => null, + 'color' => $request->color, + ]); } - - // Save changes - $folder->save(); - } /** diff --git a/app/Models/Folder.php b/app/Models/Folder.php index 34e3462a..a660c57a 100644 --- a/app/Models/Folder.php +++ b/app/Models/Folder.php @@ -23,7 +23,7 @@ class Folder extends Model ]; protected $casts = [ - 'icon_emoji' => 'object', + 'emoji' => 'array', ]; /** diff --git a/database/migrations/2019_08_15_171328_create_file_manager_folders.php b/database/migrations/2019_08_15_171328_create_file_manager_folders.php index 38b0e631..f4829cef 100644 --- a/database/migrations/2019_08_15_171328_create_file_manager_folders.php +++ b/database/migrations/2019_08_15_171328_create_file_manager_folders.php @@ -19,7 +19,7 @@ class CreateFileManagerFolders extends Migration $table->uuid('parent_id')->nullable(); $table->text('name'); $table->string('color')->nullable(); - $table->string('emoji')->nullable(); + $table->longText('emoji')->nullable(); $table->enum('user_scope', ['master', 'editor', 'visitor'])->default('master'); $table->softDeletes(); $table->timestamps(); diff --git a/tests/Feature/FolderTest.php b/tests/Feature/FolderTest.php index 9e9f6d57..916c524d 100644 --- a/tests/Feature/FolderTest.php +++ b/tests/Feature/FolderTest.php @@ -78,9 +78,42 @@ class FolderTest extends TestCase ]); } - public function it_set_folder_emoji() + /** + * @test + */ + public function it_set_folder_icon() { + $folder = Folder::factory(Folder::class) + ->create(); + $user = User::factory(User::class) + ->create(); + + Sanctum::actingAs($user); + + // TODO: pridat do api skupiny + $this->patchJson("/api/rename/{$folder->id}", [ + 'name' => 'Renamed Folder', + 'type' => 'folder', + 'emoji' => [ + 'category' => 'Smileys & Emotion (face-smiling)', + 'char' => '😁', + 'name' => 'beaming face with smiling eyes', + ] + ]) + ->assertStatus(200) + ->assertJsonFragment([ + 'name' => 'Renamed Folder', + 'emoji' => [ + 'category' => 'Smileys & Emotion (face-smiling)', + 'char' => '😁', + 'name' => 'beaming face with smiling eyes', + ] + ]); + + $this->assertDatabaseMissing('folders', [ + 'emoji' => null + ]); } public function it_set_folder_color()