Initial Commit
This commit is contained in:
@@ -13,18 +13,24 @@ export class VehiclesRepository {
|
||||
const query = `
|
||||
INSERT INTO vehicles (
|
||||
user_id, vin, make, model, year,
|
||||
engine, transmission, trim_level, drive_type, fuel_type,
|
||||
nickname, color, license_plate, odometer_reading
|
||||
)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14)
|
||||
RETURNING *
|
||||
`;
|
||||
|
||||
const values = [
|
||||
data.userId,
|
||||
data.vin,
|
||||
(data.vin && data.vin.trim().length > 0) ? data.vin.trim() : null,
|
||||
data.make,
|
||||
data.model,
|
||||
data.year,
|
||||
data.engine,
|
||||
data.transmission,
|
||||
data.trimLevel,
|
||||
data.driveType,
|
||||
data.fuelType,
|
||||
data.nickname,
|
||||
data.color,
|
||||
data.licensePlate,
|
||||
@@ -74,6 +80,38 @@ export class VehiclesRepository {
|
||||
let paramCount = 1;
|
||||
|
||||
// Build dynamic update query
|
||||
if (data.make !== undefined) {
|
||||
fields.push(`make = $${paramCount++}`);
|
||||
values.push(data.make);
|
||||
}
|
||||
if (data.model !== undefined) {
|
||||
fields.push(`model = $${paramCount++}`);
|
||||
values.push(data.model);
|
||||
}
|
||||
if (data.year !== undefined) {
|
||||
fields.push(`year = $${paramCount++}`);
|
||||
values.push(data.year);
|
||||
}
|
||||
if (data.engine !== undefined) {
|
||||
fields.push(`engine = $${paramCount++}`);
|
||||
values.push(data.engine);
|
||||
}
|
||||
if (data.transmission !== undefined) {
|
||||
fields.push(`transmission = $${paramCount++}`);
|
||||
values.push(data.transmission);
|
||||
}
|
||||
if (data.trimLevel !== undefined) {
|
||||
fields.push(`trim_level = $${paramCount++}`);
|
||||
values.push(data.trimLevel);
|
||||
}
|
||||
if (data.driveType !== undefined) {
|
||||
fields.push(`drive_type = $${paramCount++}`);
|
||||
values.push(data.driveType);
|
||||
}
|
||||
if (data.fuelType !== undefined) {
|
||||
fields.push(`fuel_type = $${paramCount++}`);
|
||||
values.push(data.fuelType);
|
||||
}
|
||||
if (data.nickname !== undefined) {
|
||||
fields.push(`nickname = $${paramCount++}`);
|
||||
values.push(data.nickname);
|
||||
@@ -164,6 +202,11 @@ export class VehiclesRepository {
|
||||
make: row.make,
|
||||
model: row.model,
|
||||
year: row.year,
|
||||
engine: row.engine,
|
||||
transmission: row.transmission,
|
||||
trimLevel: row.trim_level,
|
||||
driveType: row.drive_type,
|
||||
fuelType: row.fuel_type,
|
||||
nickname: row.nickname,
|
||||
color: row.color,
|
||||
licensePlate: row.license_plate,
|
||||
@@ -174,4 +217,4 @@ export class VehiclesRepository {
|
||||
updatedAt: row.updated_at,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user