UNPKG

@dynamic-data/foursquare-mockups

Version:
1,589 lines (1,440 loc) 46 kB
import { randomHexString, getRandomInt, getRandomName, randomCountry, pickRandomValue, getRandomTimeZone, getRandomDateTime, getRandomString, randomIntPhone, getRandomLatLng, getRandomAddress, getRandBool, randomLanguage } from '@dynamic-data/utils'; import MOCK from '@dynamic-data/foursquare-data'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var metaModel = { meta: function meta() { return { "code": 200, "requestId": randomHexString({ len: 24, upperCase: false }) }; } }; var NotificationsModel = { notifications: function notifications() { return { item: { unreadCount: getRandomInt(0, 50) }, type: "notificationTray" }; } }; var PhotoDetailsModel = { id: function id() { return randomHexString({ len: 24, upperCase: false }); }, createdAt: function createdAt() { return getRandomInt(1000000000, 2000000000); }, source: function source() { var sources = [{ "name": "Instagram", "url": "http://instagram.com" }]; return sources[getRandomInt(0, sources.length - 1)]; }, prefix: function prefix() { return "https://igx.4sqi.net/img/general/"; }, suffix: function suffix() { return "/1022386_wEd7VXnWzp5lajvRLtAPunoiufDSIq8PMEtEuIH2Tzg.jpg"; }, width: function width() { return getRandomInt(99, 1000); }, height: function height() { return getRandomInt(99, 1000); }, user: function user() { var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; return { firstName: getRandomName(), lastName: characters.charAt(Math.floor(Math.random() * characters.length)), countryCode: randomCountry() }; }, visibility: function visibility() { return pickRandomValue(["private", "public"]); }, checkin: function checkin() { var timezone = getRandomTimeZone(); switch (_typeof(timezone["OFFSET"])) { case "object": timezone = timezone["OFFSET"][pickRandomValue(["STD", "DST"])]; break; default: timezone = timezone["OFFSET"]; break; } return { id: randomHexString({ len: 24, upperCase: false }), createdAt: getRandomDateTime(false), type: "checkin", timeZoneOffset: timezone }; // id: "51e4151b498ea66547febfaf", // createdAt: 1373902107, // type: "checkin", // timeZoneOffset: -240 } }; var VenueModel = { id: function id() { return randomHexString({ len: 24, upperCase: false }); }, name: function name() { return getRandomString(getRandomInt(15, 100)); }, contact: function contact(name) { var phone = randomIntPhone(); return { "phone": phone.replace("+", ""), "formattedPhone": phone, "twitter": name, "instagram": name, "facebook": getRandomInt(9999999999, 99999999999), "facebookUsername": name, "facebookName": name }; }, location: function location() { var country = randomCountry({ full: null }); var latLng = getRandomLatLng(); var address = getRandomAddress(); return { address: "".concat(address["streetNumber"], " ").concat(address["streetName"]), crossStreet: "", lat: latLng[0], lng: latLng[1], postalCode: address["postalCode"], cc: country["code"], city: address["city"], state: address["county"], country: country["full"], formattedAddress: ["".concat(address["streetNumber"], " ").concat(address["streetName"]), "".concat(address["city"], ", ").concat(address["county"], " ").concat(address["postalCode"]), country["full"]] }; }, canonicalUrl: function canonicalUrl(name, id) { return "https://foursquare.com/v/".concat(name, "/").concat(id); }, categories: function categories(primary) { var name = getRandomString(getRandomInt(15, 100)); var pluralName = getRandomString(getRandomInt(15, 100)); var shortName = getRandomString(getRandomInt(15, 100)); return { id: randomHexString({ len: 24, upperCase: false }), name: name, pluralName: pluralName, shortName: shortName, icon: { prefix: "https://ss3.4sqi.net/img/categories_v2/arts_entertainment/museum_art_", suffix: pickRandomValue([".png", ".jpg", ".jpeg"]) }, primary: primary }; }, url: function url() { var url = getRandomString(getRandomInt(5, 15)); var domain = pickRandomValue(["com", "co.uk", "org"]); return "www.".concat(url, ".").concat(domain); }, likes: function likes() { var count = getRandomInt(0, 99999); return { "count": count, "summary": "".concat(count, " Likes") }; }, rating: function rating() { return getRandomInt(0, 100) / 10; }, ratingColor: function ratingColor() { return randomHexString({ len: 6, upperCase: true }); }, verified: function verified() { return getRandBool(); }, stats: function stats() { return { "checkinsCount": getRandomInt(0, 999999), "usersCount": getRandomInt(0, 999999), "tipCount": getRandomInt(0, 999), "visitsCount": getRandomInt(0, 999999) }; }, ratingSignals: function ratingSignals() { return getRandomInt(0, 99999); }, beenHere: function beenHere() { return { "count": 0, "unconfirmedCount": 0, "marked": false, "lastCheckinExpiredAt": 0 }; }, description: function description() { return getRandomString(getRandomInt(15, 100)); }, storeId: function storeId() { return ""; }, page: function page(url) { var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; return { "pageInfo": { "description": getRandomString(getRandomInt(15, 50)), "banner": "https://is1.4sqi.net/userpix/HS2JAA2IAAAR2WZO.jpg", "links": { "count": 1, "items": [{ "url": url }] } }, "user": { "firstName": getRandomName(), "lastName": characters.charAt(Math.floor(Math.random() * characters.length)), "countryCode": randomCountry() } }; }, hereNow: function hereNow() { var types = [{ "type": "others", "name": "Other people here" }]; var groups = []; var length = getRandomInt(0, types.length); var final = 0; for (var i = 0; i < length; i++) { var x = getRandomInt(0, types.length - 1); groups.push({ "type": types[x]["type"], "name": types[x]["type"], "count": getRandomInt(0, 999), "items": [] }); } for (var i = 0; i < groups.length; i++) { final += groups[i]["count"]; } return { "count": final, "summary": "".concat(final, " people are here"), "groups": groups }; }, createdAt: function createdAt() { return getRandomInt(1000000000, 2000000000); }, updatedAt: function updatedAt(createdAt) { return createdAt + getRandomInt(10000, 5000000); }, shortUrl: function shortUrl() { var url = getRandomString(6); return "www.http://4sq.com/".concat(url); }, timeZone: function timeZone() { var zone = getRandomTimeZone(); return zone["TZ_NAME"]; }, listed: function listed() { var types = [{ "type": "others", "name": "Lists from other people" }]; var groups = []; var length = getRandomInt(0, types.length); var final = 0; for (var i = 0; i < length; i++) { var x = getRandomInt(0, types.length - 1); groups.push({ "type": types[x]["type"], "name": types[x]["type"], "count": getRandomInt(0, 999), "items": [] }); } for (var i = 0; i < groups.length; i++) { final += groups[i]["count"]; } return { "count": final, "summary": "".concat(final, " people are here"), "groups": groups }; }, phrases: function phrases() { var text = getRandomString(getRandomInt(15, 100)); var start = getRandomInt(0, text.length - 1); var end = getRandomInt(start, text.length - 1); var subStr = text.substring(start, end); return { "phrase": subStr, "sample": { "entities": [{ "indices": [start, end], "type": "keyPhrase" }], "text": text }, "count": getRandomInt(0, 10) }; }, hours: function hours() { var minutes = ["00", "15", "30", "45"]; var start = getRandomInt(0, 24) - 1; var end = start + getRandomInt(0, 20) - 1; if (end >= 24) { end -= 24; } [start, end].forEach(function (key) { if (key >= 12) { switch (key) { case 12: key = "12:".concat(pickRandomValue(minutes), " PM"); break; default: key = "".concat(key - 12, ":").concat(pickRandomValue(minutes), " PM"); break; } } else { switch (key) { case 0: key = "12:".concat(pickRandomValue(minutes), " AM"); break; default: key = "".concat(key, ":").concat(pickRandomValue(minutes), " AM"); break; } } }); return { "status": "Open until ".concat(end), "isOpen": getRandBool(), "isLocalHoliday": getRandBool(), "timeframes": [{ "days": "Mon–Sun", "includesToday": getRandBool(), "open": [{ "renderedTime": "".concat(start, "-").concat(end) }], "segments": [] }] }; }, popular: function popular() { var statuses = ["Likely open"]; var start = getRandomInt(0, 24) - 1; var end = start + getRandomInt(0, 20) - 1; if (end >= 24) { end -= 24; } var minutes = ["00", "15", "30", "45"]; [start, end].forEach(function (key) { if (key >= 12) { switch (key) { case 12: key = "12:".concat(pickRandomValue(minutes), " PM"); break; default: key = "".concat(key - 12, ":").concat(pickRandomValue(minutes), " PM"); break; } } else { switch (key) { case 0: key = "12:".concat(pickRandomValue(minutes), " AM"); break; default: key = "".concat(key, ":").concat(pickRandomValue(minutes), " AM"); break; } } }); return { status: pickRandomValue(statuses), isOpen: getRandBool(), isLocalHoliday: getRandBool(), timeframes: [{ days: "Tue–Thu", open: [{ renderedTime: "".concat(start, "-").concat(end) }], segments: [] }] }; }, pageUpdates: function pageUpdates() { return { "count": getRandomInt(0, 20) - 1, "items": [] }; }, inbox: function inbox() { return { "count": getRandomInt(0, 20) - 1, "items": [] }; }, venueChains: function venueChains() { return []; }, attributes: function attributes() { return { "groups": [{ "type": "payments", "name": "Credit Cards", "summary": "No Credit Cards", "count": 7, "items": [{ "displayName": "Credit Cards", "displayValue": "No" }] }] }; }, photos: function photos(num) { var items = []; var item = { "id": "5150464f52625adbe29d04c2", "createdAt": 1364215375, "source": { "name": "Foursquare Web", "url": "https://foursquare.com" }, "prefix": "https://igx.4sqi.net/img/general/", "suffix": "/13764780_Ao02DfJpgG1ar2PfgP51hOKWsn38iai8bsSpzKd0GcM.jpg", "width": 800, "height": 542, "visibility": "public" }; for (var i = 0; i < num; i++) { ["id", "createdAt", "source", "prefix", "suffix", "width", "height", "user", "visibility"].forEach(function (key) { switch (key) { default: item[key] = PhotoDetailsModel[key](); break; } }); items.push(Object.assign({}, item)); } var count = getRandomInt(0, 100); return { "count": count + getRandomInt(0, 100), "groups": [{ "type": "venue", "name": "Venue photos", "count": count, "items": items }] }; }, tips: function tips(num) { var items = []; var item = { "id": "5150464ee4b02f70eb28eee4", "createdAt": 1364215374, "text": "Did you know? To create that feeling of being in the countryside, and not in the middle of a city, the four Transverse Roads were sunken down eight feet below the park’s surface.", "type": "user", "canonicalUrl": "https://foursquare.com/item/5150464ee4b02f70eb28eee4", "photo": { "id": "5150464f52625adbe29d04c2", "createdAt": 1364215375, "source": { "name": "Foursquare Web", "url": "https://foursquare.com" }, "prefix": "https://igx.4sqi.net/img/general/", "suffix": "/13764780_Ao02DfJpgG1ar2PfgP51hOKWsn38iai8bsSpzKd0GcM.jpg", "width": 800, "height": 542, "visibility": "public" }, "photourl": "https://igx.4sqi.net/img/general/original/13764780_Ao02DfJpgG1ar2PfgP51hOKWsn38iai8bsSpzKd0GcM.jpg", "lang": "en", "likes": { "count": 247, "groups": [{ "type": "others", "count": 247, "items": [] }], "summary": "247 likes" }, "logView": true, "agreeCount": 246, "disagreeCount": 0, "todo": { "count": 30 }, "user": { "firstName": "John", "lastName": "D", "countryCode": "US" } }; for (var i = 0; i < num; i++) { ["id", "createdAt", "text", "type", "canonicalUrl", "photo", "photourl", "lang", "likes", "logView", "agreeCount", "disagreeCount", "todo", "user"].forEach(function (key) { switch (key) { case "canonicalUrl": item[key] = TipDetailsModel[key](item["id"]); break; case "photourl": item[key] = TipDetailsModel[key](item["photo"]["prefix"], item["photo"]["suffix"]); break; default: item[key] = TipDetailsModel[key](); break; } }); items.push(Object.assign({}, item)); } var count = getRandomInt(0, 100); return { "count": count + getRandomInt(0, 100), "groups": [{ "type": "venue", "name": "Venue photos", "count": count, "items": items }] }; }, venuePage: function venuePage() { return { id: getRandomInt(9999999, 1000000000) - 1 }; }, popularityByGeo: function popularityByGeo() { return getRandomInt(0, 9999999999999999) / 100000000000000000; }, type: function type() { return "others"; }, editable: function editable() { return getRandBool(); }, public: function _public() { return getRandBool(); }, collaborative: function collaborative() { return getRandBool(); }, listItems: function listItems() { return { count: getRandomInt(0, 500), items: [{ id: getRandomString(25), createdAt: getRandomInt(1000000000, 2000000000) }] }; }, user: function user() { var id = getRandomInt(999999, 9999999).toString(); var name = getRandomString(getRandomInt(5, 25)); return { id: id, firstName: name, photo: { prefix: "https://igx.4sqi.net/img/user/", suffix: "/".concat(id, ".png") } }; }, followers: function followers() { return { count: getRandomInt(0, 999) }; }, hasPerk: function hasPerk() { return getRandBool(); } }; var TipDetailsModel = { id: function id() { return randomHexString({ len: 24, upperCase: false }); }, createdAt: function createdAt() { return getRandomInt(1000000000, 2000000000); }, text: function text() { return getRandomString(getRandomInt(15, 100)); }, type: function type() { var types = ["user"]; return types[getRandomInt(0, types.length - 1)]; }, canonicalUrl: function canonicalUrl(id) { return "https://foursquare.com/item/".concat(id); }, lang: function lang() { return randomLanguage(); }, saves: function saves() { return { "count": 1, "groups": [], "summary": "1 Save" }; }, photo: function photo() { var base = { "id": "5150464f52625adbe29d04c2", "createdAt": 1364215375, "source": { "name": "Foursquare Web", "url": "https://foursquare.com" }, "prefix": "https://igx.4sqi.net/img/general/", "suffix": "/13764780_Ao02DfJpgG1ar2PfgP51hOKWsn38iai8bsSpzKd0GcM.jpg", "width": 800, "height": 542, "visibility": "public" }; ["id", "createdAt", "source", "prefix", "suffix", "width", "height", "user", "visibility"].forEach(function (key) { switch (key) { default: base[key] = PhotoDetailsModel[key](); break; } }); return base; }, photourl: function photourl(prefix, suffix) { return "".concat(prefix, "original").concat(suffix); }, likes: function likes() { var count = getRandomInt(0, 500); return { "count": count, "groups": [{ "type": "others", "count": count, "items": [] }], "summary": "".concat(count, " likes") }; }, logView: function logView() { return getRandBool(); }, agreeCount: function agreeCount() { return getRandomInt(0, 500); }, disagreeCount: function disagreeCount() { return getRandomInt(0, 500); }, todo: function todo() { var count = getRandomInt(0, 500); return { "count": count }; }, user: function user() { var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; return { firstName: getRandomName(), lastName: characters.charAt(Math.floor(Math.random() * characters.length)), countryCode: randomCountry() }; } }; var CategoriesModel = { id: function id() { return randomHexString({ len: 24, upperCase: false }); }, categories: function categories() { return []; }, icon: function icon() { return { prefix: "https://ss3.4sqi.net/img/categories_v2/arts_entertainment/default_", suffix: pickRandomValue([".png", ".jpg", ".jpeg"]) }; }, name: function name() { return getRandomString(getRandomInt(15, 100)); }, pluralName: function pluralName() { return getRandomString(getRandomInt(15, 100)); }, shortName: function shortName() { return getRandomString(getRandomInt(15, 100)); } }; var RecommendationModel = { warning: function warning() { return { text: getRandomString(getRandomInt(20, 70)) }; }, suggestedRadius: function suggestedRadius() { return getRandomInt(0, 1000); }, headerLocation: function headerLocation() { return "Lower East Side"; }, headerFullLocation: function headerFullLocation(headerLocation) { return "".concat(headerLocation, ", New York"); }, headerLocationGranularity: function headerLocationGranularity() { return "neighborhood"; }, totalResults: function totalResults() { return getRandomInt(0, 500); }, suggestedBounds: function suggestedBounds() { return { ne: { lat: 40.724216906965616, lng: -73.9896507407283 }, sw: { lat: 40.72151724718017, lng: -73.98693222860872 } }; }, reasons: function reasons() { return { count: 0, items: [{ summary: "This spot is popular", type: "general", reasonName: "globalInteractionReason" }] }; } }; var VenueListModel = { lists: function lists(items) { var count = getRandomInt(0, 1000); return { count: count, groups: [{ type: "others", name: "Lists from other people", count: count, items: items }] }; } }; var HoursModel = { timeframes: function timeframes() { var exclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var days = [1, 2, 3, 4, 5, 6, 7]; var filtered = days.filter(function (item) { return exclude.indexOf(item) === -1; }); var length = getRandomInt(0, Math.max.apply(Math, _toConsumableArray(filtered))); var final = []; for (var i = 0; i < length;) { var index = getRandomInt(0, filtered.length - 1); if (!final.includes(filtered[index])) { final.push(filtered[index]); i++; } } var start = getRandomInt(0, 23) - 1; var end = getRandomInt(start, 24); if (start < 10) { start = "0".concat(start, "00"); } else { start = "".concat(start, "00"); } if (end < 10) { end = "0".concat(end, "00"); } else { end = "".concat(end, "00"); } return { days: final, open: [{ start: start, end: end }], segments: [] }; } }; var LikesModel = { like: function like() { return getRandBool(); }, likes: function likes() { var count = getRandomInt(0, 500); return { count: count, groups: [{ count: count, items: [], type: "others" }], summary: "".concat(count, " Likes") }; } }; var dataModels = { PhotoDetails: { data: MOCK.photos_details, mockup: PhotoDetailsModel }, TipDetails: { data: MOCK.tips_details, mockup: TipDetailsModel }, VenuesDetails: { data: MOCK.venues_details, mockup: VenueModel }, VenuesCategories: { data: MOCK.venues_categories, mockup: CategoriesModel }, VenueRecommendations: { data: MOCK.venues_getRecommendations, mockup: RecommendationModel }, VenueList: { data: MOCK.venues_getVenueList, mockup: VenueListModel }, VenueHours: { data: MOCK.venues_hours, mockup: HoursModel }, VenueLikes: { data: MOCK.venues_likes, mockup: LikesModel }, NextVenues: { data: MOCK.venues_nextVenues, mockup: VenueModel }, VenuePhotos: { data: MOCK.venues_photos, mockup: PhotoDetailsModel }, VenuesSearch: { data: MOCK.venues_search, mockup: VenueModel }, SimilarVenues: { data: MOCK.venues_similarVenues, mockup: VenueModel }, VenueSuggestions: { data: MOCK.venues_suggestSearch, mockup: VenueModel }, VenueTips: { data: MOCK.venues_tips, mockup: TipDetailsModel }, VenueTrending: { data: MOCK.venues_trending, mockup: VenueModel } }; function getModelCSVHeader(dataModel) { return dataModels[dataModel].data[0].split("\t"); } function getPhotoDetailsMockupData(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]; }); } ["meta", "id", "createdAt", "source", "prefix", "suffix", "width", "height", "user", "visibility", "venueID", "name", "contact", "location", "categories"].forEach(function (key, i) { switch (key) { case "venueID": mockupData["response"]["photo"]["venue"][key] = VenueModel["id"](); break; case "location": case "name": mockupData["response"]["photo"]["venue"][key] = VenueModel[key](); case "contact": mockupData["response"]["photo"]["venue"][key] = VenueModel[key](mockupData["response"]["photo"]["venue"]["name"]); break; case "categories": mockupData["response"]["photo"]["venue"][key] = {}; break; case "meta": mockupData[key] = metaModel[key](); break; default: mockupData["response"]["photo"][key] = mockupModel[key](); break; } }); return mockupData; } function getTipDetailsMockupData(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]; }); } ["meta", "id", "createdAt", "text", "type", "canonicalUrl", "lang", "saves", "venueID", "name", "location", "venuePage", "categories"].forEach(function (key, i) { switch (key) { case "venueID": mockupData["response"]["tip"]["venue"]["id"] = VenueModel["id"](); break; case "location": case "name": case "venuePage": mockupData["response"]["tip"]["venue"][key] = VenueModel[key](); break; case "categories": var primary = true; var randomCats = 1; mockupData["response"]["tip"]["venue"][key] = []; for (var index = 0; index < randomCats; index++) { mockupData["response"]["tip"]["venue"][key].push(VenueModel[key](primary)); switch (primary) { case true: primary = false; break; } } break; case "meta": mockupData[key] = metaModel[key](); break; default: mockupData["response"]["tip"][key] = mockupModel[key](); break; } }); return mockupData; } function getVenuesDetailsMockupData(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]; }); } ["id", "name", "contact", "location", "canonicalUrl", "categories", "url", "likes", "rating", "ratingColor", "verified", "stats", "ratingSignals", "beenHere", "photos", "description", "storeId", "page", "hereNow", "createdAt", "tips", "shortUrl", "timeZone", "listed", "phrases", "hours", "popular", "pageUpdates", "inbox", "venueChains", "attributes", "bestPhoto"].forEach(function (key, i) { switch (key) { case "contact": mockupData["response"]["venue"][key] = mockupModel[key](mockupData["response"]["venue"]["name"]); break; case "categories": var primary = true; var randomCats = 1; mockupData["response"]["venue"][key] = []; for (var index = 0; index < randomCats; index++) { mockupData["response"]["venue"][key].push(mockupModel[key](primary)); switch (primary) { case true: primary = false; break; } } break; case "canonicalUrl": mockupData["response"]["venue"][key] = mockupModel[key](mockupData["response"]["venue"]["name"], mockupData["response"]["venue"]["id"]); break; case "meta": mockupData[key] = metaModel[key](); break; case "photos": case "tips": mockupData["response"]["venue"][key] = mockupModel[key](1); break; case "bestPhoto": mockupData["response"]["venue"][key] = pickRandomValue(mockupData["response"]["venue"]["photos"]["groups"][0]["items"]); break; default: mockupData["response"]["venue"][key] = mockupModel[key](); break; } }); return mockupData; } function getVenuesCategoriesMockupData(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["response"]["categories"][0]["categories"] = [mockupData["response"]["categories"][0]["categories"][0]]; var numOfCategories = 1; ["meta", "notifications"].forEach(function (key, i) { switch (key) { case "notifications": mockupData[key] = NotificationsModel[key](); break; case "meta": mockupData[key] = metaModel[key](); break; } }); for (var index = 0; index < numOfCategories; index++) { ["categories", "icon", "id", "name", "pluralName", "shortName"].forEach(function (key, i) { switch (key) { default: mockupData["response"]["categories"][0]["categories"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getVenueRecommendationsMockupData(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]; }); } ["warning", "suggestedRadius", "headerLocation", "headerFullLocation", "headerLocationGranularity", "totalResults", "suggestedBounds", "reasons", "id", "name", "location", "categories", "popularityByGeo", "venuePage"].forEach(function (key, i) { switch (key) { case "location": mockupData["response"]["groups"][0]["items"][0]["venue"][key] = VenueModel[key](); mockupData["response"]["groups"][0]["items"][0]["venue"][key]["labeledLatLngs"] = [{ label: "display", lat: mockupData["response"]["groups"][0]["items"][0]["venue"][key]["lat"], lng: mockupData["response"]["groups"][0]["items"][0]["venue"][key]["lng"] }]; break; case "categories": mockupData["response"]["groups"][0]["items"][0]["venue"][key][0] = VenueModel[key](true); break; case "venuePage": case "popularityByGeo": case "name": case "id": mockupData["response"]["groups"][0]["items"][0]["venue"][key] = VenueModel[key](); break; case "reasons": mockupData["response"]["groups"][0]["items"][0][key] = mockupModel[key](); break; case "headerFullLocation": mockupData["response"][key] = mockupModel[key](mockupData["response"]["headerLocation"]); break; case "meta": mockupData[key] = metaModel[key](); break; default: mockupData["response"][key] = mockupModel[key](); break; } }); return mockupData; } function getVenueListMockupData(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["meta"] = metaModel["meta"](); mockupData["response"]["lists"] = mockupModel["lists"]([mockupData["response"]["lists"]["groups"][0]["items"][0]]); for (var index = 0; index < mockupData["response"]["lists"]["groups"][0]["items"].length; index++) { ["id", "name", "type", "user", "editable", "public", "collaborative", "url", "canonicalUrl", "createdAt", "updatedAt", "photo", "followers", "listItems"].forEach(function (key, i) { switch (key) { case "updatedAt": mockupData["response"]["lists"]["groups"][0]["items"][index][key] = VenueModel[key](mockupData["response"]["lists"]["groups"][0]["items"][index]["createdAt"]); break; case "canonicalUrl": mockupData["response"]["lists"]["groups"][0]["items"][index][key] = VenueModel[key](mockupData["response"]["lists"]["groups"][0]["items"][index]["name"], mockupData["response"]["lists"]["groups"][0]["items"][index]["id"]); break; case "photo": mockupData["response"]["lists"]["groups"][0]["items"][index][key] = VenueModel["photos"](1)[0]; break; default: mockupData["response"]["lists"]["groups"][0]["items"][index][key] = VenueModel[key](); break; } }); } return mockupData; } function getVenueHoursMockupData(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["meta"] = metaModel["meta"](); ["hours", "popular"].forEach(function (key, i) { switch (key) { default: mockupData["response"][key]["timeframes"] = [mockupData["response"][key]["timeframes"][0]]; mockupData["response"][key]["timeframes"][0] = mockupModel["timeframes"](); break; } }); return mockupData; } function getVenueLikesMockupData(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["meta"] = metaModel["meta"](); mockupData["notifications"] = NotificationsModel["notifications"](); ["like", "likes"].forEach(function (key, i) { switch (key) { default: mockupData["response"][key] = mockupModel[key](); break; } }); return mockupData; } function getNextVenueMockupData(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["meta"] = metaModel["meta"](); mockupData["response"]["nextVenues"]["items"] = [mockupData["response"]["nextVenues"]["items"][0]]; mockupData["response"]["nextVenues"]["count"] = 1; for (var index = 0; index < mockupData["response"]["nextVenues"]["items"].length; index++) { ["id", "name", "location", "categories"].forEach(function (key, i) { switch (key) { case "categories": var primary = true; var randomCats = 1; mockupData["response"]["nextVenues"]["items"][index][key] = []; for (var index2 = 0; index2 < randomCats; index2++) { mockupData["response"]["nextVenues"]["items"][index][key].push(mockupModel[key](primary)); switch (primary) { case true: primary = false; break; } } break; default: mockupData["response"]["nextVenues"]["items"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getVenuePhotosMockupData(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]; }); } for (var index = 0; index < mockupData["response"]["photos"]["items"].length; index++) { ["meta", "id", "createdAt", "source", "prefix", "suffix", "width", "height", "user", "checkin", "visibility"].forEach(function (key, i) { switch (key) { case "meta": mockupData[key] = metaModel[key](); break; default: mockupData["response"]["photos"]["items"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getVenuesSearchMockupData(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["meta"] = metaModel["meta"](); for (var index = 0; index < mockupData["response"]["venues"].length; index++) { ["id", "name", "location", "categories", "venuePage"].forEach(function (key, i) { switch (key) { case "location": mockupData["response"]["venues"][index][key] = mockupModel[key](); mockupData["response"]["venues"][index][key]["labeledLatLngs"] = [{ label: "display", lat: mockupData["response"]["venues"][index][key]["lat"], lng: mockupData["response"]["venues"][index][key]["lng"] }]; break; case "categories": mockupData["response"]["venues"][index][key][0] = mockupModel[key](true); break; default: mockupData["response"]["venues"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getSimilarVenuesMockupData(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["meta"] = metaModel["meta"](); mockupData["notifications"] = NotificationsModel["notifications"](); mockupData["response"]["similarVenues"]["items"] = [mockupData["response"]["similarVenues"]["items"][0]]; for (var index = 0; index < mockupData["response"]["similarVenues"]["items"].length; index++) { ["id", "contact", "name", "location", "categories", "venuePage"].forEach(function (key, i) { switch (key) { case "location": mockupData["response"]["similarVenues"]["items"][index][key] = mockupModel[key](); mockupData["response"]["similarVenues"]["items"][index][key]["labeledLatLngs"] = [{ label: "display", lat: mockupData["response"]["similarVenues"]["items"][index][key]["lat"], lng: mockupData["response"]["similarVenues"]["items"][index][key]["lng"] }]; break; case "categories": mockupData["response"]["similarVenues"]["items"][index][key][0] = mockupModel[key](true); break; default: mockupData["response"]["similarVenues"]["items"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getVenueSuggestionsMockupData(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["meta"] = metaModel["meta"](); mockupData["response"]["minivenues"] = [mockupData["response"]["minivenues"][0]]; for (var index = 0; index < mockupData["response"]["minivenues"].length; index++) { ["id", "name", "location", "categories", "hasPerk"].forEach(function (key, i) { switch (key) { case "categories": mockupData["response"]["minivenues"][index][key][0] = mockupModel[key](true); break; default: mockupData["response"]["minivenues"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getVenueTipsMockupData(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["meta"] = metaModel["meta"](); mockupData["response"]["tips"]["items"] = [mockupData["response"]["tips"]["items"][0]]; for (var index = 0; index < mockupData["response"]["tips"]["items"].length; index++) { ["id", "createdAt", "text", "type", "canonicalUrl", "photo", "photourl", "lang", "likes", "logView", "agreeCount", "disagreeCount", "todo"].forEach(function (key, i) { switch (key) { case "likes": mockupData["response"]["tips"]["items"][index][key] = { count: 0, groups: [] }; break; case "photourl": mockupData["response"]["tips"]["items"][index][key] = mockupModel[key](mockupData["response"]["tips"]["items"][index]["photo"]["prefix"], mockupData["response"]["tips"]["items"][index]["photo"]["suffix"]); break; case "canonicalUrl": mockupData["response"]["tips"]["items"][index][key] = mockupModel[key](mockupData["response"]["tips"]["items"][index]["id"]); break; default: mockupData["response"]["tips"]["items"][index][key] = mockupModel[key](); break; } }); } return mockupData; } function getVenueTrendingMockupData(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["meta"] = metaModel["meta"](); mockupData["response"]["venues"] = [mockupData["response"]["venues"][0]]; for (var index = 0; index < mockupData["response"]["venues"].length; index++) { ["id", "name", "location", "categories"].forEach(function (key, i) { switch (key) { case "categories": mockupData["response"]["venues"][index][key][0] = mockupModel[key](true); break; default: mockupData["response"]["venues"][index][key] = mockupModel[key](); break; } }); } return mockupData; } export { getModelCSVHeader, getNextVenueMockupData, getPhotoDetailsMockupData, getSimilarVenuesMockupData, getTipDetailsMockupData, getVenueHoursMockupData, getVenueLikesMockupData, getVenueListMockupData, getVenuePhotosMockupData, getVenueRecommendationsMockupData, getVenueSuggestionsMockupData, getVenueTipsMockupData, getVenueTrendingMockupData, getVenuesCategoriesMockupData, getVenuesDetailsMockupData, getVenuesSearchMockupData };