From 29fce75d35d87c784d9bcdf32032a3c036210247 Mon Sep 17 00:00:00 2001 From: Milos Holba Date: Tue, 9 Feb 2021 16:22:06 +0100 Subject: [PATCH] change language id to uuid --- .../Language/LanguageController.php | 65 +++++++++++++++---- app/Language.php | 15 ++++- app/LanguageString.php | 4 +- ...21_01_09_130434_create_languages_table.php | 2 +- ...1_01_09_152048_create_language_strings.php | 2 +- public/mix-manifest.json | 46 ++++++++++++- routes/api.php | 7 +- 7 files changed, 121 insertions(+), 20 deletions(-) diff --git a/app/Http/Controllers/Language/LanguageController.php b/app/Http/Controllers/Language/LanguageController.php index 00f53fd5..12791bb6 100644 --- a/app/Http/Controllers/Language/LanguageController.php +++ b/app/Http/Controllers/Language/LanguageController.php @@ -10,12 +10,47 @@ use App\Http\Controllers\Controller; class LanguageController extends Controller { - public function show_strings($language) + /** + * Create new language + * + * @param Request $request + * @return string + */ + public function create(Request $request) + { + // Check if is demo + if (env('APP_DEMO')) { + return Demo::response_204(); + } + + // Create new language + $language = Language::create([ + 'name' => $request->name, + 'locale' => $request->locale + ]); + + // Return created language + return $language; + } + + /** + * Get all language strings + * + * @param $language + * @return string + */ + public function get_language_strings($language) { return Language::where('locale', $language)->with('languegeStrings')->first(); } - - public function update(Request $request) + + /** + * Update strings for language + * + * @param Request $request + * @return ResponseFactory|\Illuminate\Http\Response + */ + public function update_string(Request $request) { // Check if is demo if (env('APP_DEMO')) { @@ -24,22 +59,30 @@ class LanguageController extends Controller $lang = Language::where('locale', $request->input('locale'))->first(); - foreach($request->input('language') as $language) + // dd($lang->id); + + foreach($request->input('language') as $language) { // If key with lang already exist update, if no crate - LanguageString::updateOrCreate(['key' => $language['key'], - 'lang' =>$lang->locale - ], [ - 'language_id' => $lang->id, - 'value' =>$language['value'] - ]); + LanguageString::updateOrCreate([ + 'language_id' => $lang->id, + 'key' => $language['key'], + 'lang' => $lang->locale, + ],[ + 'value' => $language['value'] + ]); } return response('Done', 204); } - public function all_languages () + /** + * Get all languages + * + * @return string + */ + public function get_languages () { return Language::all(); } diff --git a/app/Language.php b/app/Language.php index efb9e595..580c7c31 100644 --- a/app/Language.php +++ b/app/Language.php @@ -3,14 +3,27 @@ namespace App; use App\LanguageString; +use Illuminate\Support\Str; use Illuminate\Database\Eloquent\Model; class Language extends Model { - public $timestamps = false; protected $guarded = ['id']; + protected $keyType = 'string'; + + public $incrementing = false ; + + public $timestamps = false; + + protected static function booted() + { + static::creating(function($model) { + $model->id = Str::uuid(); + }); + } + public function languegeStrings() { return $this->hasMany('App\LanguageString', 'language_id', 'id'); diff --git a/app/LanguageString.php b/app/LanguageString.php index 1e18c0a5..e0af90eb 100644 --- a/app/LanguageString.php +++ b/app/LanguageString.php @@ -8,5 +8,7 @@ class LanguageString extends Model { public $timestamps = false; - protected $guarded = ['id']; + protected $fillable = ['value', 'language_id' ,'key', 'lang']; + + } diff --git a/database/migrations/2021_01_09_130434_create_languages_table.php b/database/migrations/2021_01_09_130434_create_languages_table.php index 4a2b2ef3..e19a0c7d 100644 --- a/database/migrations/2021_01_09_130434_create_languages_table.php +++ b/database/migrations/2021_01_09_130434_create_languages_table.php @@ -14,7 +14,7 @@ class CreateLanguagesTable extends Migration public function up() { Schema::create('languages', function (Blueprint $table) { - $table->bigIncrements('id'); + $table->uuid('id')->primary(); $table->string('name'); $table->string('locale')->unique(); }); diff --git a/database/migrations/2021_01_09_152048_create_language_strings.php b/database/migrations/2021_01_09_152048_create_language_strings.php index e8b156a7..768fc0dd 100644 --- a/database/migrations/2021_01_09_152048_create_language_strings.php +++ b/database/migrations/2021_01_09_152048_create_language_strings.php @@ -15,7 +15,7 @@ class CreateLanguageStrings extends Migration { Schema::create('language_strings', function (Blueprint $table) { $table->bigIncrements('id'); - $table->bigInteger('language_id'); + $table->uuid('language_id'); $table->string('key'); $table->longText('value'); $table->string('lang'); diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 6a90e327..b5291290 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -75,6 +75,48 @@ "/chunks/user-storage.js": "/chunks/user-storage.js?id=5cfec8a8f8a8aef24ef2", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=34603496ceacb8bd2da3", "/chunks/users.js": "/chunks/users.js?id=6e68cb068f69fba3199c", - "/js/main.1b85a59ba9d22abe3c14.hot-update.js": "/js/main.1b85a59ba9d22abe3c14.hot-update.js", - "/js/main.f447a679da701dd9acd7.hot-update.js": "/js/main.f447a679da701dd9acd7.hot-update.js" + "/chunks/files~chunks/shared-files~chunks/shared-page.9c00a577ed3bec474797.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9c00a577ed3bec474797.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.9f3e82e178713f15df4d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9f3e82e178713f15df4d.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.ad4c905a2ac6b1145710.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.ad4c905a2ac6b1145710.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.c8a6e4c3d77f2866a449.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c8a6e4c3d77f2866a449.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.9cc2c53635c9285c9bf4.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.9cc2c53635c9285c9bf4.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.91e84fcc65331ffb8a9d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.91e84fcc65331ffb8a9d.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.446e9414658ffa0b595c.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.446e9414658ffa0b595c.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.c90898a702ee307a1072.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c90898a702ee307a1072.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.3bcd1a35fc099de2db3b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.3bcd1a35fc099de2db3b.hot-update.js", + "/js/main.6471eb760893f2ccd583.hot-update.js": "/js/main.6471eb760893f2ccd583.hot-update.js", + "/chunks/admin.6471eb760893f2ccd583.hot-update.js": "/chunks/admin.6471eb760893f2ccd583.hot-update.js", + "/chunks/admin-account.6471eb760893f2ccd583.hot-update.js": "/chunks/admin-account.6471eb760893f2ccd583.hot-update.js", + "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js", + "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.6471eb760893f2ccd583.hot-update.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.6471eb760893f2ccd583.hot-update.js", + "/chunks/app-index.6471eb760893f2ccd583.hot-update.js": "/chunks/app-index.6471eb760893f2ccd583.hot-update.js", + "/chunks/app-settings.6471eb760893f2ccd583.hot-update.js": "/chunks/app-settings.6471eb760893f2ccd583.hot-update.js", + "/chunks/app-setup.6471eb760893f2ccd583.hot-update.js": "/chunks/app-setup.6471eb760893f2ccd583.hot-update.js", + "/chunks/billings-detail.6471eb760893f2ccd583.hot-update.js": "/chunks/billings-detail.6471eb760893f2ccd583.hot-update.js", + "/chunks/contact-us.6471eb760893f2ccd583.hot-update.js": "/chunks/contact-us.6471eb760893f2ccd583.hot-update.js", + "/chunks/dashboard.6471eb760893f2ccd583.hot-update.js": "/chunks/dashboard.6471eb760893f2ccd583.hot-update.js", + "/chunks/database.6471eb760893f2ccd583.hot-update.js": "/chunks/database.6471eb760893f2ccd583.hot-update.js", + "/chunks/environment-setup.6471eb760893f2ccd583.hot-update.js": "/chunks/environment-setup.6471eb760893f2ccd583.hot-update.js", + "/chunks/files.6471eb760893f2ccd583.hot-update.js": "/chunks/files.6471eb760893f2ccd583.hot-update.js", + "/chunks/files~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.6471eb760893f2ccd583.hot-update.js", + "/chunks/installation-disclaimer.6471eb760893f2ccd583.hot-update.js": "/chunks/installation-disclaimer.6471eb760893f2ccd583.hot-update.js", + "/chunks/landing-page.6471eb760893f2ccd583.hot-update.js": "/chunks/landing-page.6471eb760893f2ccd583.hot-update.js", + "/chunks/plan-create.6471eb760893f2ccd583.hot-update.js": "/chunks/plan-create.6471eb760893f2ccd583.hot-update.js", + "/chunks/plan-subscribers.6471eb760893f2ccd583.hot-update.js": "/chunks/plan-subscribers.6471eb760893f2ccd583.hot-update.js", + "/chunks/profile.6471eb760893f2ccd583.hot-update.js": "/chunks/profile.6471eb760893f2ccd583.hot-update.js", + "/chunks/purchase-code.6471eb760893f2ccd583.hot-update.js": "/chunks/purchase-code.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings.6471eb760893f2ccd583.hot-update.js": "/chunks/settings.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings-create-payment-methods.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-create-payment-methods.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings-invoices.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-invoices.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings-payment-methods.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-payment-methods.6471eb760893f2ccd583.hot-update.js", + "/chunks/settings-subscription.6471eb760893f2ccd583.hot-update.js": "/chunks/settings-subscription.6471eb760893f2ccd583.hot-update.js", + "/chunks/shared-page.6471eb760893f2ccd583.hot-update.js": "/chunks/shared-page.6471eb760893f2ccd583.hot-update.js", + "/chunks/sign-in.6471eb760893f2ccd583.hot-update.js": "/chunks/sign-in.6471eb760893f2ccd583.hot-update.js", + "/chunks/sign-up.6471eb760893f2ccd583.hot-update.js": "/chunks/sign-up.6471eb760893f2ccd583.hot-update.js", + "/chunks/stripe-credentials.6471eb760893f2ccd583.hot-update.js": "/chunks/stripe-credentials.6471eb760893f2ccd583.hot-update.js", + "/chunks/subscription-plans.6471eb760893f2ccd583.hot-update.js": "/chunks/subscription-plans.6471eb760893f2ccd583.hot-update.js", + "/chunks/upgrade.6471eb760893f2ccd583.hot-update.js": "/chunks/upgrade.6471eb760893f2ccd583.hot-update.js", + "/chunks/upgrade-billing.6471eb760893f2ccd583.hot-update.js": "/chunks/upgrade-billing.6471eb760893f2ccd583.hot-update.js", + "/chunks/user-invoices.6471eb760893f2ccd583.hot-update.js": "/chunks/user-invoices.6471eb760893f2ccd583.hot-update.js", + "/chunks/user-subscription.6471eb760893f2ccd583.hot-update.js": "/chunks/user-subscription.6471eb760893f2ccd583.hot-update.js" } diff --git a/routes/api.php b/routes/api.php index 191f7654..6bd9183f 100644 --- a/routes/api.php +++ b/routes/api.php @@ -170,9 +170,10 @@ Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:m Route::get('/flush-cache', 'AppFunctionsController@flush_cache'); // Language - Route::patch('/language/update', 'Language\LanguageController@update'); - Route::get('/language/{language}/strings', 'Language\LanguageController@show_strings'); - Route::get('/language/get-all', 'Language\LanguageController@all_languages'); + Route::post('/language/create', 'Language\LanguageController@create'); + Route::patch('/language/update', 'Language\LanguageController@update_string'); + Route::get('/language/{language}/strings', 'Language\LanguageController@get_language_strings'); + Route::get('/language/get', 'Language\LanguageController@get_languages'); }); // Protected sharing routes for authenticated user