class Vehicle { brand model color year category engine number vin1 vin2 sts pts isRightWheel isJapanese photos addedDate addedBy static fromAvtocod(report) { let tech = report.fields.tech_data; let e = tech.engine; let v = new Vehicle(); v.brand = { name: tech.brand.name, logo: tech.brand.logotype.uri }; v.category = report.fields.additional_info.vehicle.category.code; v.engine = { number: e.number, volume: e.volume, powerHp: e.power.hp, powerKw: e.power.kw, fuelType: e.fuel.type }; v.model = tech.model ? { name: tech.model.name } : null; v.year = tech.year; v.number = report.fields.identifiers.vehicle.reg_num; v.pts = report.fields.identifiers.vehicle.pts; v.sts = report.fields.identifiers.vehicle.sts; v.vin1 = report.fields.identifiers.vehicle.vin; v.photos = report.fields.images.photos.items.map(p => { return { brand: p.vehicle.brand.name, model: p.vehicle.model.name, date: Date.parse(p.date.issued), url: p.uri }; }); v.isRightWheel = tech.wheel.position != 'LEFT'; v.isJapanese = report.is_japanese_vehicle; v.addedDate = Date.now(); return v; } } module.exports = Vehicle;