diff --git a/.gitignore b/.gitignore index a37b58e..c0bace5 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ yarn-error.log socialtree.sqlite database.db node_modules +data.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 49075b7..0000000 --- a/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "socialtree", - "lockfileVersion": 2, - "requires": true, - "packages": {} -} diff --git a/src/app/Console/Commands/loadAll.php b/src/app/Console/Commands/loadAll.php index 7e00acd..cbb2951 100644 --- a/src/app/Console/Commands/loadAll.php +++ b/src/app/Console/Commands/loadAll.php @@ -2,6 +2,7 @@ namespace App\Console\Commands; +use App\Http\Controllers\LoadDBController; use Illuminate\Console\Command; use League\Flysystem\Config; @@ -38,7 +39,14 @@ class loadAll extends Command */ public function handle() { - printf(env('JSON_FILE_PATH')); - return Command::SUCCESS; + if (file_exists(env('JSON_FILE_PATH'))) { + $config = json_decode(file_get_contents(env('JSON_FILE_PATH')), true); + $loadDBController = new LoadDBController(); + $loadDBController->loadUserdata($config['username'], $config['theme']); + return Command::SUCCESS; + } else { + print('Error: JSON File does not exist at given location'."\n"); + return Command::FAILURE; + } } } diff --git a/src/app/Http/Controllers/LoadDBController.php b/src/app/Http/Controllers/LoadDBController.php new file mode 100644 index 0000000..47579da --- /dev/null +++ b/src/app/Http/Controllers/LoadDBController.php @@ -0,0 +1,22 @@ +loadDBService = new LoadDBService(); + } + + public function loadUserdata($username, $theme): void + { + $this->loadDBService->setusername($username); + $this->loadDBService->settheme($theme); + } +} diff --git a/src/app/Http/Controllers/SocialTreePageController.php b/src/app/Http/Controllers/SocialTreePageController.php index 02cd714..77d9c9e 100644 --- a/src/app/Http/Controllers/SocialTreePageController.php +++ b/src/app/Http/Controllers/SocialTreePageController.php @@ -17,13 +17,6 @@ class SocialTreePageController extends Controller public function index(): view { - - $username = "Nikurasu"; - $links = [ - ["id" => 1, "platform" => "YouTube", "link" => "https://youtube.com/test", "linktext" => "YouTube", "brandcolors" => true], - ["id" => 2, "platform" => "Twitter", "link" => "https://twitter.com/test", "linktext" => "Twitter", "brandcolors" => false], - ["id" => 3, "platform" => "LinkedIn", "link" => "https://linkedIn.com/test", "linktext" => "LinkedIn", "brandcolors" => true], - ]; $links = $this->socialTreePageService->getLinks(); $config = $this->socialTreePageService->getConfig()[0]; $username = $config['username']; diff --git a/src/app/Models/links.php b/src/app/Models/links.php index 1cc95b1..37f97bc 100644 --- a/src/app/Models/links.php +++ b/src/app/Models/links.php @@ -21,7 +21,7 @@ class links extends Model * @var array */ protected $attributes = [ - 'plattform' => null, + 'plattform' => 'null', 'link' => 'null' ]; } diff --git a/src/app/Models/userdata.php b/src/app/Models/userdata.php index ed1b1f5..6820910 100644 --- a/src/app/Models/userdata.php +++ b/src/app/Models/userdata.php @@ -8,4 +8,9 @@ use Illuminate\Database\Eloquent\Model; class userdata extends Model { use HasFactory; + protected $table = 'userdatas'; + protected $attributes = [ + 'username'=> 'null', + 'theme'=> 'orange' + ]; } diff --git a/src/app/Services/LoadDBDataMutator.php b/src/app/Services/LoadDBDataMutator.php new file mode 100644 index 0000000..53b7abf --- /dev/null +++ b/src/app/Services/LoadDBDataMutator.php @@ -0,0 +1,46 @@ +username = $username; + $ud->save(); + } + + public function getAll(): array + { + return userdata::all()->toArray(); + } + + public function deleteByID($id): void + { + userdata::where('id', $id)->delete(); + } + + public function editUsernameByID($id, $username): void + { + userdata::where('id', $id)->update([ + 'username' => $username, + ]); + } + public function settheme(string $theme): void + { + $ud = new userdata; + $ud->theme = $theme; + $ud->save(); + } + public function editThemeByID(int $id, string $theme): void + { + userdata::where('id', $id)->update([ + 'theme' => $theme, + ]); + } +} \ No newline at end of file diff --git a/src/app/Services/LoadDBService.php b/src/app/Services/LoadDBService.php new file mode 100644 index 0000000..e4ace45 --- /dev/null +++ b/src/app/Services/LoadDBService.php @@ -0,0 +1,52 @@ +loadDBDataMutator = new LoadDBDataMutator(); + } + + public function setusername($username): void + { + $this->reduceEntriesToOne($this->loadDBDataMutator->getAll()); + $userdata = $this->loadDBDataMutator->getAll(); + if (count($userdata) == 1) + { + $this->loadDBDataMutator->editUsernameByID($userdata[0]['id'], $username); + } + else + { + $this->loadDBDataMutator->setusername($username); + } + } + public function settheme($theme): void + { + $this->reduceEntriesToOne($this->loadDBDataMutator->getAll()); + $userdata = $this->loadDBDataMutator->getAll(); + if (count($userdata) == 1) + { + $this->loadDBDataMutator->editThemeByID($userdata[0]['id'], $theme); + } + else + { + $this->loadDBDataMutator->settheme($theme); + } + } + + private function reduceEntriesToOne($userdata): void + { + if (count($userdata)> 1) + { + for ($entries = 1; $entries < count($userdata); $entries++) + { + $this->loadDBDataMutator->deleteByID($userdata[$entries]['id']); + } + + } + } +} \ No newline at end of file