@dynamic-data/foursquare-mockups
Version:
Dynamic Data Faker for FourSquare
1,612 lines (1,459 loc) • 47.7 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var utils = require('@dynamic-data/utils');
var MOCK = require('@dynamic-data/foursquare-data');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var MOCK__default = /*#__PURE__*/_interopDefaultLegacy(MOCK);
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": utils.randomHexString({
len: 24,
upperCase: false
})
};
}
};
var NotificationsModel = {
notifications: function notifications() {
return {
item: {
unreadCount: utils.getRandomInt(0, 50)
},
type: "notificationTray"
};
}
};
var PhotoDetailsModel = {
id: function id() {
return utils.randomHexString({
len: 24,
upperCase: false
});
},
createdAt: function createdAt() {
return utils.getRandomInt(1000000000, 2000000000);
},
source: function source() {
var sources = [{
"name": "Instagram",
"url": "http://instagram.com"
}];
return sources[utils.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 utils.getRandomInt(99, 1000);
},
height: function height() {
return utils.getRandomInt(99, 1000);
},
user: function user() {
var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return {
firstName: utils.getRandomName(),
lastName: characters.charAt(Math.floor(Math.random() * characters.length)),
countryCode: utils.randomCountry()
};
},
visibility: function visibility() {
return utils.pickRandomValue(["private", "public"]);
},
checkin: function checkin() {
var timezone = utils.getRandomTimeZone();
switch (_typeof(timezone["OFFSET"])) {
case "object":
timezone = timezone["OFFSET"][utils.pickRandomValue(["STD", "DST"])];
break;
default:
timezone = timezone["OFFSET"];
break;
}
return {
id: utils.randomHexString({
len: 24,
upperCase: false
}),
createdAt: utils.getRandomDateTime(false),
type: "checkin",
timeZoneOffset: timezone
}; // id: "51e4151b498ea66547febfaf",
// createdAt: 1373902107,
// type: "checkin",
// timeZoneOffset: -240
}
};
var VenueModel = {
id: function id() {
return utils.randomHexString({
len: 24,
upperCase: false
});
},
name: function name() {
return utils.getRandomString(utils.getRandomInt(15, 100));
},
contact: function contact(name) {
var phone = utils.randomIntPhone();
return {
"phone": phone.replace("+", ""),
"formattedPhone": phone,
"twitter": name,
"instagram": name,
"facebook": utils.getRandomInt(9999999999, 99999999999),
"facebookUsername": name,
"facebookName": name
};
},
location: function location() {
var country = utils.randomCountry({
full: null
});
var latLng = utils.getRandomLatLng();
var address = utils.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 = utils.getRandomString(utils.getRandomInt(15, 100));
var pluralName = utils.getRandomString(utils.getRandomInt(15, 100));
var shortName = utils.getRandomString(utils.getRandomInt(15, 100));
return {
id: utils.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: utils.pickRandomValue([".png", ".jpg", ".jpeg"])
},
primary: primary
};
},
url: function url() {
var url = utils.getRandomString(utils.getRandomInt(5, 15));
var domain = utils.pickRandomValue(["com", "co.uk", "org"]);
return "www.".concat(url, ".").concat(domain);
},
likes: function likes() {
var count = utils.getRandomInt(0, 99999);
return {
"count": count,
"summary": "".concat(count, " Likes")
};
},
rating: function rating() {
return utils.getRandomInt(0, 100) / 10;
},
ratingColor: function ratingColor() {
return utils.randomHexString({
len: 6,
upperCase: true
});
},
verified: function verified() {
return utils.getRandBool();
},
stats: function stats() {
return {
"checkinsCount": utils.getRandomInt(0, 999999),
"usersCount": utils.getRandomInt(0, 999999),
"tipCount": utils.getRandomInt(0, 999),
"visitsCount": utils.getRandomInt(0, 999999)
};
},
ratingSignals: function ratingSignals() {
return utils.getRandomInt(0, 99999);
},
beenHere: function beenHere() {
return {
"count": 0,
"unconfirmedCount": 0,
"marked": false,
"lastCheckinExpiredAt": 0
};
},
description: function description() {
return utils.getRandomString(utils.getRandomInt(15, 100));
},
storeId: function storeId() {
return "";
},
page: function page(url) {
var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return {
"pageInfo": {
"description": utils.getRandomString(utils.getRandomInt(15, 50)),
"banner": "https://is1.4sqi.net/userpix/HS2JAA2IAAAR2WZO.jpg",
"links": {
"count": 1,
"items": [{
"url": url
}]
}
},
"user": {
"firstName": utils.getRandomName(),
"lastName": characters.charAt(Math.floor(Math.random() * characters.length)),
"countryCode": utils.randomCountry()
}
};
},
hereNow: function hereNow() {
var types = [{
"type": "others",
"name": "Other people here"
}];
var groups = [];
var length = utils.getRandomInt(0, types.length);
var final = 0;
for (var i = 0; i < length; i++) {
var x = utils.getRandomInt(0, types.length - 1);
groups.push({
"type": types[x]["type"],
"name": types[x]["type"],
"count": utils.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 utils.getRandomInt(1000000000, 2000000000);
},
updatedAt: function updatedAt(createdAt) {
return createdAt + utils.getRandomInt(10000, 5000000);
},
shortUrl: function shortUrl() {
var url = utils.getRandomString(6);
return "www.http://4sq.com/".concat(url);
},
timeZone: function timeZone() {
var zone = utils.getRandomTimeZone();
return zone["TZ_NAME"];
},
listed: function listed() {
var types = [{
"type": "others",
"name": "Lists from other people"
}];
var groups = [];
var length = utils.getRandomInt(0, types.length);
var final = 0;
for (var i = 0; i < length; i++) {
var x = utils.getRandomInt(0, types.length - 1);
groups.push({
"type": types[x]["type"],
"name": types[x]["type"],
"count": utils.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 = utils.getRandomString(utils.getRandomInt(15, 100));
var start = utils.getRandomInt(0, text.length - 1);
var end = utils.getRandomInt(start, text.length - 1);
var subStr = text.substring(start, end);
return {
"phrase": subStr,
"sample": {
"entities": [{
"indices": [start, end],
"type": "keyPhrase"
}],
"text": text
},
"count": utils.getRandomInt(0, 10)
};
},
hours: function hours() {
var minutes = ["00", "15", "30", "45"];
var start = utils.getRandomInt(0, 24) - 1;
var end = start + utils.getRandomInt(0, 20) - 1;
if (end >= 24) {
end -= 24;
}
[start, end].forEach(function (key) {
if (key >= 12) {
switch (key) {
case 12:
key = "12:".concat(utils.pickRandomValue(minutes), " PM");
break;
default:
key = "".concat(key - 12, ":").concat(utils.pickRandomValue(minutes), " PM");
break;
}
} else {
switch (key) {
case 0:
key = "12:".concat(utils.pickRandomValue(minutes), " AM");
break;
default:
key = "".concat(key, ":").concat(utils.pickRandomValue(minutes), " AM");
break;
}
}
});
return {
"status": "Open until ".concat(end),
"isOpen": utils.getRandBool(),
"isLocalHoliday": utils.getRandBool(),
"timeframes": [{
"days": "Mon–Sun",
"includesToday": utils.getRandBool(),
"open": [{
"renderedTime": "".concat(start, "-").concat(end)
}],
"segments": []
}]
};
},
popular: function popular() {
var statuses = ["Likely open"];
var start = utils.getRandomInt(0, 24) - 1;
var end = start + utils.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(utils.pickRandomValue(minutes), " PM");
break;
default:
key = "".concat(key - 12, ":").concat(utils.pickRandomValue(minutes), " PM");
break;
}
} else {
switch (key) {
case 0:
key = "12:".concat(utils.pickRandomValue(minutes), " AM");
break;
default:
key = "".concat(key, ":").concat(utils.pickRandomValue(minutes), " AM");
break;
}
}
});
return {
status: utils.pickRandomValue(statuses),
isOpen: utils.getRandBool(),
isLocalHoliday: utils.getRandBool(),
timeframes: [{
days: "Tue–Thu",
open: [{
renderedTime: "".concat(start, "-").concat(end)
}],
segments: []
}]
};
},
pageUpdates: function pageUpdates() {
return {
"count": utils.getRandomInt(0, 20) - 1,
"items": []
};
},
inbox: function inbox() {
return {
"count": utils.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 = utils.getRandomInt(0, 100);
return {
"count": count + utils.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 = utils.getRandomInt(0, 100);
return {
"count": count + utils.getRandomInt(0, 100),
"groups": [{
"type": "venue",
"name": "Venue photos",
"count": count,
"items": items
}]
};
},
venuePage: function venuePage() {
return {
id: utils.getRandomInt(9999999, 1000000000) - 1
};
},
popularityByGeo: function popularityByGeo() {
return utils.getRandomInt(0, 9999999999999999) / 100000000000000000;
},
type: function type() {
return "others";
},
editable: function editable() {
return utils.getRandBool();
},
public: function _public() {
return utils.getRandBool();
},
collaborative: function collaborative() {
return utils.getRandBool();
},
listItems: function listItems() {
return {
count: utils.getRandomInt(0, 500),
items: [{
id: utils.getRandomString(25),
createdAt: utils.getRandomInt(1000000000, 2000000000)
}]
};
},
user: function user() {
var id = utils.getRandomInt(999999, 9999999).toString();
var name = utils.getRandomString(utils.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: utils.getRandomInt(0, 999)
};
},
hasPerk: function hasPerk() {
return utils.getRandBool();
}
};
var TipDetailsModel = {
id: function id() {
return utils.randomHexString({
len: 24,
upperCase: false
});
},
createdAt: function createdAt() {
return utils.getRandomInt(1000000000, 2000000000);
},
text: function text() {
return utils.getRandomString(utils.getRandomInt(15, 100));
},
type: function type() {
var types = ["user"];
return types[utils.getRandomInt(0, types.length - 1)];
},
canonicalUrl: function canonicalUrl(id) {
return "https://foursquare.com/item/".concat(id);
},
lang: function lang() {
return utils.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 = utils.getRandomInt(0, 500);
return {
"count": count,
"groups": [{
"type": "others",
"count": count,
"items": []
}],
"summary": "".concat(count, " likes")
};
},
logView: function logView() {
return utils.getRandBool();
},
agreeCount: function agreeCount() {
return utils.getRandomInt(0, 500);
},
disagreeCount: function disagreeCount() {
return utils.getRandomInt(0, 500);
},
todo: function todo() {
var count = utils.getRandomInt(0, 500);
return {
"count": count
};
},
user: function user() {
var characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return {
firstName: utils.getRandomName(),
lastName: characters.charAt(Math.floor(Math.random() * characters.length)),
countryCode: utils.randomCountry()
};
}
};
var CategoriesModel = {
id: function id() {
return utils.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: utils.pickRandomValue([".png", ".jpg", ".jpeg"])
};
},
name: function name() {
return utils.getRandomString(utils.getRandomInt(15, 100));
},
pluralName: function pluralName() {
return utils.getRandomString(utils.getRandomInt(15, 100));
},
shortName: function shortName() {
return utils.getRandomString(utils.getRandomInt(15, 100));
}
};
var RecommendationModel = {
warning: function warning() {
return {
text: utils.getRandomString(utils.getRandomInt(20, 70))
};
},
suggestedRadius: function suggestedRadius() {
return utils.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 utils.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 = utils.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 = utils.getRandomInt(0, Math.max.apply(Math, _toConsumableArray(filtered)));
var final = [];
for (var i = 0; i < length;) {
var index = utils.getRandomInt(0, filtered.length - 1);
if (!final.includes(filtered[index])) {
final.push(filtered[index]);
i++;
}
}
var start = utils.getRandomInt(0, 23) - 1;
var end = utils.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 utils.getRandBool();
},
likes: function likes() {
var count = utils.getRandomInt(0, 500);
return {
count: count,
groups: [{
count: count,
items: [],
type: "others"
}],
summary: "".concat(count, " Likes")
};
}
};
var dataModels = {
PhotoDetails: {
data: MOCK__default["default"].photos_details,
mockup: PhotoDetailsModel
},
TipDetails: {
data: MOCK__default["default"].tips_details,
mockup: TipDetailsModel
},
VenuesDetails: {
data: MOCK__default["default"].venues_details,
mockup: VenueModel
},
VenuesCategories: {
data: MOCK__default["default"].venues_categories,
mockup: CategoriesModel
},
VenueRecommendations: {
data: MOCK__default["default"].venues_getRecommendations,
mockup: RecommendationModel
},
VenueList: {
data: MOCK__default["default"].venues_getVenueList,
mockup: VenueListModel
},
VenueHours: {
data: MOCK__default["default"].venues_hours,
mockup: HoursModel
},
VenueLikes: {
data: MOCK__default["default"].venues_likes,
mockup: LikesModel
},
NextVenues: {
data: MOCK__default["default"].venues_nextVenues,
mockup: VenueModel
},
VenuePhotos: {
data: MOCK__default["default"].venues_photos,
mockup: PhotoDetailsModel
},
VenuesSearch: {
data: MOCK__default["default"].venues_search,
mockup: VenueModel
},
SimilarVenues: {
data: MOCK__default["default"].venues_similarVenues,
mockup: VenueModel
},
VenueSuggestions: {
data: MOCK__default["default"].venues_suggestSearch,
mockup: VenueModel
},
VenueTips: {
data: MOCK__default["default"].venues_tips,
mockup: TipDetailsModel
},
VenueTrending: {
data: MOCK__default["default"].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] = utils.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;
}
exports.getModelCSVHeader = getModelCSVHeader;
exports.getNextVenueMockupData = getNextVenueMockupData;
exports.getPhotoDetailsMockupData = getPhotoDetailsMockupData;
exports.getSimilarVenuesMockupData = getSimilarVenuesMockupData;
exports.getTipDetailsMockupData = getTipDetailsMockupData;
exports.getVenueHoursMockupData = getVenueHoursMockupData;
exports.getVenueLikesMockupData = getVenueLikesMockupData;
exports.getVenueListMockupData = getVenueListMockupData;
exports.getVenuePhotosMockupData = getVenuePhotosMockupData;
exports.getVenueRecommendationsMockupData = getVenueRecommendationsMockupData;
exports.getVenueSuggestionsMockupData = getVenueSuggestionsMockupData;
exports.getVenueTipsMockupData = getVenueTipsMockupData;
exports.getVenueTrendingMockupData = getVenueTrendingMockupData;
exports.getVenuesCategoriesMockupData = getVenuesCategoriesMockupData;
exports.getVenuesDetailsMockupData = getVenuesDetailsMockupData;
exports.getVenuesSearchMockupData = getVenuesSearchMockupData;