change language id to uuid

This commit is contained in:
Milos Holba
2021-02-09 16:22:06 +01:00
parent a8457cf261
commit 29fce75d35
7 changed files with 121 additions and 20 deletions

View File

@@ -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();
}

View File

@@ -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');

View File

@@ -8,5 +8,7 @@ class LanguageString extends Model
{
public $timestamps = false;
protected $guarded = ['id'];
protected $fillable = ['value', 'language_id' ,'key', 'lang'];
}

View File

@@ -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();
});

View File

@@ -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');

View File

@@ -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"
}

View File

@@ -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