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,
}
}