add: car processing

This commit is contained in:
Alex
2025-03-15 00:11:27 +01:00
parent af000aa4bc
commit e35524132e

View File

@@ -3,10 +3,10 @@ import { toRFC3339 } from './helpers';
/** /**
* Converts FormData to a nested object structure * Converts FormData to a nested object structure
* @param {FormData} formData - The FormData object to convert * @param {FormData} formData - The FormData object to convert
* @returns {{ object: Partial<App.Locals['user']> | Partial<App.Types['subscription']>, confirm_password: string }} Nested object representation of the form data * @returns {{ object: Partial<App.Locals['user']> | Partial<App.Types['subscription']> | Partial<App.Types['car']>, confirm_password: string }} Nested object representation of the form data
*/ */
export function formDataToObject(formData) { export function formDataToObject(formData) {
/** @type { Partial<App.Locals['user']> | Partial<App.Types['subscription']> } */ /** @type { Partial<App.Locals['user']> | Partial<App.Types['subscription']> | Partial<App.Types['car']> } */
const object = {}; const object = {};
let confirm_password = ''; let confirm_password = '';
@@ -142,8 +142,8 @@ export function processUserFormData(rawData) {
} }
/** /**
* Processes the raw form data into the expected user data structure * Processes the raw form data into the expected subscription data structure
* @param {{ object: Partial<App.Types['subscription']>} } rawData - The raw form data object * @param {{ object: Partial<App.Types['subscription']>, confirm_password: string }} rawData - The raw form data object
* @returns {{ subscription: Partial<App.Types['subscription']> }} Processed user data * @returns {{ subscription: Partial<App.Types['subscription']> }} Processed user data
*/ */
export function processSubscriptionFormData(rawData) { export function processSubscriptionFormData(rawData) {
@@ -166,3 +166,39 @@ export function processSubscriptionFormData(rawData) {
console.dir(clean); console.dir(clean);
return clean; return clean;
} }
/**
* Processes the raw form data into the expected car data structure
* @param {{ object: Partial<App.Types['car']>, confirm_password: string }} rawData - The raw form data object
* @returns {{ car: Partial<App.Types['car']> }} Processed user data
*/
export function processCarFormData(rawData) {
/** @type {{ car: Partial<App.Types['car']> }} */
let processedData = {
car: {
id: Number(rawData.object.id) || 0,
name: String(rawData.object.name) || '',
status: Number(rawData.object.status) || 0,
brand: String(rawData.object.brand) || '',
model: String(rawData.object.model) || '',
price: Number(rawData.object.price) || 0,
rate: Number(rawData.object.rate) || 0,
licence_plate: String(rawData.object.licence_plate) || '',
start_date: toRFC3339(String(rawData.object.start_date)) || '',
end_date: toRFC3339(String(rawData.object.end_date)) || '',
color: String(rawData.object.color) || '',
notes: String(rawData.object.notes) || '',
location: {
latitude: Number(rawData.object.location?.latitude) || 0,
longitude: Number(rawData.object.location?.longitude) || 0
},
damages: rawData.object.damages || [],
insurances: rawData.object.insurances || []
}
};
const clean = JSON.parse(JSON.stringify(processedData), (key, value) =>
value !== null && value !== '' ? value : undefined
);
console.dir(clean);
return clean;
}