diff --git a/frontend/src/app.d.ts b/frontend/src/app.d.ts index ffa1ef8..8163770 100644 --- a/frontend/src/app.d.ts +++ b/frontend/src/app.d.ts @@ -37,7 +37,7 @@ interface Licence { issued_date: string | ''; expiration_date: string | ''; country: string | ''; - licence_categories: LicenceCategory[]; + categories: LicenceCategory[]; } interface LicenceCategory { diff --git a/frontend/src/lib/components/UserEditForm.svelte b/frontend/src/lib/components/UserEditForm.svelte index 6eb1b95..f52f09b 100644 --- a/frontend/src/lib/components/UserEditForm.svelte +++ b/frontend/src/lib/components/UserEditForm.svelte @@ -48,7 +48,7 @@ issued_date: '', expiration_date: '', country: '', - licence_categories: [] + categories: [] }, bank_account: { id: 0, @@ -374,11 +374,11 @@
cat.category === category.category )} /> diff --git a/frontend/src/lib/utils/processing.js b/frontend/src/lib/utils/processing.js index 2f75822..5f1bb11 100644 --- a/frontend/src/lib/utils/processing.js +++ b/frontend/src/lib/utils/processing.js @@ -20,10 +20,11 @@ export function formDataToObject(formData) { /** @type {string[]} */ const keys = key.match(/\[([^\]]+)\]/g)?.map((k) => k.slice(1, -1)) || [key]; console.log('Processed keys:', keys); + console.dir(value); /** @type {Record} */ let current = object; - console.log('Current object state:', JSON.stringify(current)); + // console.log('Current object state:', JSON.stringify(current)); for (let i = 0; i < keys.length - 1; i++) { /** * Create nested object if it doesn't exist @@ -42,13 +43,14 @@ export function formDataToObject(formData) { } const lastKey = keys[keys.length - 1]; - if (lastKey.endsWith('[]')) { - /** - * Handle array fields (licence categories) - */ - const arrayKey = lastKey.slice(0, -2); - current[arrayKey] = current[arrayKey] || []; - current[arrayKey].push(value); + if (key.endsWith('[]')) { + current[lastKey] = current[lastKey] || []; + try { + /** @type {{id: number, category: string}} */ + current[lastKey].push(JSON.parse(value.toString())); + } catch { + current[lastKey].push(value); + } } else { current[lastKey] = value; } @@ -100,7 +102,7 @@ export function processFormData(rawData) { issued_date: toRFC3339(rawData.user.licence?.issued_date), expiration_date: toRFC3339(rawData.user.licence?.expiration_date), country: String(rawData.user.licence?.country || ''), - licence_categories: rawData.user.licence?.licence_categories || [] + categories: rawData.user.licence?.categories || [] }, bank_account: { @@ -114,7 +116,8 @@ export function processFormData(rawData) { } } }; - + console.log('Categories: --------'); + console.dir(rawData.user.licence); if ( rawData.user.password && rawData.password2 && diff --git a/internal/models/user.go b/internal/models/user.go index b60fd8e..e313564 100644 --- a/internal/models/user.go +++ b/internal/models/user.go @@ -108,13 +108,13 @@ func (u *User) Safe() map[string]interface{} { if u.Licence != nil { result["licence"] = map[string]interface{}{ - "id": u.Licence.ID, - "number": u.Licence.Number, - "status": u.Licence.Status, - "issued_date": u.Licence.IssuedDate, - "expiration_date": u.Licence.ExpirationDate, - "country": u.Licence.IssuingCountry, - "licence_categories": u.Licence.Categories, + "id": u.Licence.ID, + "number": u.Licence.Number, + "status": u.Licence.Status, + "issued_date": u.Licence.IssuedDate, + "expiration_date": u.Licence.ExpirationDate, + "country": u.Licence.IssuingCountry, + "categories": u.Licence.Categories, } }