UNPKG

@dynamic-data/lyft-mockups

Version:
272 lines (233 loc) 8.03 kB
import { getRandomString, getRandomInt, pickRandomValue, randomUUID, getRandBool, randomCurrency } from '@dynamic-data/utils'; import MOCK from '@dynamic-data/lyft-data'; var RideModel = { display_name: function display_name(ride_type) { switch (ride_type) { case "lyft": return "Lyft"; case "lyft_line": return "Lyft Line"; case "lyft_plus": return "Lyft Plus"; case "lyft_luxsuv": return "Lyft Lux SUV"; case "lyft_premier": return "Lyft Premier"; case "lyft_lux": return "Lyft Lux"; default: return getRandomString(getRandomInt(5, 15)); } }, ride_type: function ride_type() { return pickRandomValue(["lyft", "lyft_line", "lyft_plus", "lyft_luxsuv", "lyft_lux", "lyft_premier"]); }, eta_seconds: function eta_seconds() { return getRandomInt(0, 1000); }, estimated_cost_cents_max: function estimated_cost_cents_max() { return getRandomInt(10, 500); }, estimated_cost_cents_min: function estimated_cost_cents_min() { return getRandomInt(10, 500); }, estimated_distance_miles: function estimated_distance_miles() { return getRandomInt(10, 5000); }, estimated_duration_seconds: function estimated_duration_seconds() { return getRandomInt(10, 500); }, cost_token: function cost_token() { return randomUUID(); }, is_valid_estimate: function is_valid_estimate() { return getRandBool(); } }; var RideTypesModel = { display_name: function display_name(ride_type) { switch (ride_type) { case "lyft": return "Lyft"; case "lyft_line": return "Lyft Line"; case "lyft_plus": return "Lyft Plus"; case "lyft_luxsuv": return "Lyft Lux SUV"; case "lyft_premier": return "Lyft Premier"; case "lyft_lux": return "Lyft Lux"; default: return getRandomString(getRandomInt(5, 15)); } }, ride_type: function ride_type() { return pickRandomValue(["lyft", "lyft_line", "lyft_plus", "lyft_luxsuv", "lyft_lux", "lyft_premier"]); }, image_url: function image_url() { return "https://cdn.lyft.com/assets/car_plus.png"; }, pricing_details: function pricing_details() { return { base_charge: getRandomInt(0, 1000), cost_per_mile: getRandomInt(0, 100), cost_per_minute: getRandomInt(0, 100), cost_minimum: getRandomInt(0, 700), trust_and_service: getRandomInt(0, 300), currency: randomCurrency("SIMPLE WEST ISO-4217").code, cancel_penalty_amount: getRandomInt(0, 1000) }; }, seats: function seats() { return getRandomInt(0, 6); } }; var NearbyDriversModel = { locations: function locations() { return { lat: 37.7746225247, lng: -122.455451083 }; }, ride_type: function ride_type() { return pickRandomValue(["lyft", "lyft_line", "lyft_plus"]); } }; var dataModels = { DriverETA: { data: MOCK.driverETA, mockup: RideModel }, NearbyDrivers: { data: MOCK.nearby_drivers, mockup: NearbyDriversModel }, RideEstimates: { data: MOCK.rideEstimates, mockup: RideModel }, RideTypes: { data: MOCK.rideTypes, mockup: RideTypesModel } }; function getModelCSVHeader(dataModel) { return dataModels[dataModel].data[0].split("\t"); } function getDriverETAMockupData(dataType, dataModel, dataDate) { var mockupData = {}; var mockupModel = dataModels[dataModel].mockup; if (dataType === "SYNC") { mockupData = dataModels[dataModel].data; } if (dataType === "ASYNC") { var mockupDataRow = dataModels[dataModel].data[1].split("\t"); var mockupDataHeader = dataModels[dataModel].data[0].split("\t"); mockupDataHeader.forEach(function (k, i) { mockupData[k] = mockupDataRow[i]; }); } mockupData["eta_estimates"] = [mockupData["eta_estimates"][0]]; for (var index = 0; index < mockupData["eta_estimates"].length; index++) { ["ride_type", "display_name", "eta_seconds", "is_valid_estimate"].forEach(function (key, i) { switch (key) { case "display_name": mockupData["eta_estimates"][index][key] = mockupModel[key](mockupData["eta_estimates"][index]["ride_type"]); break; default: mockupData["eta_estimates"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getNearbyDriversMockupData(dataType, dataModel, dataDate) { var mockupData = {}; var mockupModel = dataModels[dataModel].mockup; if (dataType === "SYNC") { mockupData = dataModels[dataModel].data; } if (dataType === "ASYNC") { var mockupDataRow = dataModels[dataModel].data[1].split("\t"); var mockupDataHeader = dataModels[dataModel].data[0].split("\t"); mockupDataHeader.forEach(function (k, i) { mockupData[k] = mockupDataRow[i]; }); } mockupData["nearby_drivers"] = [mockupData["nearby_drivers"][0]]; mockupData["nearby_drivers"][0]["drivers"] = [mockupData["nearby_drivers"][0]["drivers"][0]]; for (var index = 0; index < mockupData["nearby_drivers"][0]["drivers"].length; index++) { ["locations", "ride_type"].forEach(function (key, i) { switch (key) { case "locations": mockupData["nearby_drivers"][0]["drivers"][index][key] = [mockupData["nearby_drivers"][0]["drivers"][index][key][0]]; mockupData["nearby_drivers"][0]["drivers"][index][key][0] = mockupModel[key](); break; default: mockupData["nearby_drivers"][0]["drivers"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getRideEstimatesMockupData(dataType, dataModel, dataDate) { var mockupData = {}; var mockupModel = dataModels[dataModel].mockup; if (dataType === "SYNC") { mockupData = dataModels[dataModel].data; } if (dataType === "ASYNC") { var mockupDataRow = dataModels[dataModel].data[1].split("\t"); var mockupDataHeader = dataModels[dataModel].data[0].split("\t"); mockupDataHeader.forEach(function (k, i) { mockupData[k] = mockupDataRow[i]; }); } mockupData["cost_estimates"] = [mockupData["cost_estimates"][0]]; for (var index = 0; index < mockupData["cost_estimates"].length; index++) { ["ride_type", "display_name", "estimated_cost_cents_max", "estimated_cost_cents_min", "estimated_distance_miles", "estimated_duration_seconds", "cost_token", "is_valid_estimate"].forEach(function (key, i) { switch (key) { case "display_name": mockupData["cost_estimates"][index][key] = mockupModel[key](mockupData["cost_estimates"][index]["ride_type"]); break; default: mockupData["cost_estimates"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getRideTypesMockupData(dataType, dataModel, dataDate) { var mockupData = {}; var mockupModel = dataModels[dataModel].mockup; if (dataType === "SYNC") { mockupData = dataModels[dataModel].data; } if (dataType === "ASYNC") { var mockupDataRow = dataModels[dataModel].data[1].split("\t"); var mockupDataHeader = dataModels[dataModel].data[0].split("\t"); mockupDataHeader.forEach(function (k, i) { mockupData[k] = mockupDataRow[i]; }); } mockupData["ride_types"] = [mockupData["ride_types"][0]]; for (var index = 0; index < mockupData["ride_types"].length; index++) { ["ride_type", "display_name", "image_url", "pricing_details", "seats"].forEach(function (key, i) { switch (key) { case "display_name": mockupData["ride_types"][index][key] = mockupModel[key](mockupData["ride_types"][index]["ride_type"]); break; default: mockupData["ride_types"][index][key] = mockupModel[key](); break; } }); } return mockupData; } export { getDriverETAMockupData, getModelCSVHeader, getNearbyDriversMockupData, getRideEstimatesMockupData, getRideTypesMockupData };