UNPKG

nsyelpapi

Version:

Nativescript implementation of the native v2 yelp api

174 lines 6.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var observable_1 = require("tns-core-modules/data/observable"); var utils_1 = require("tns-core-modules/utils/utils"); var Common = (function (_super) { __extends(Common, _super); function Common() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.sortMap = { 'best_match': 0, 'distance': 1, 'rating': 2, 'review_count': 3 }; return _this; } Common.prototype.parseBusiness = function (business) { return { id: business.identifier, name: business.name, closed: business.closed, website: business.URL.absoluteString, categories: this.parseCategories(business.categories), location: this.parseYelpLocation(business.location), rating: business.rating, imageUrl: business.imageURL.absoluteString, reviewCount: business.reviewCount, phone: business.phone }; }; Common.prototype.parseCategories = function (categories) { var _this = this; var convCategories = utils_1.ios.collections.nsArrayToJSArray(categories); var categoryResults = convCategories.map(function (category) { return _this.parseYLPCategories(category); }); return categoryResults; }; Common.prototype.parseYLPCategories = function (category) { return { alias: category.alias, name: category.name }; }; Common.prototype.parseYelpLocation = function (location) { return { address: utils_1.ios.collections.nsArrayToJSArray(location.address)[0], city: location.city, coordinates: this.parseCoordinates(location.coordinate), countryCode: location.countryCode, postalCode: location.postalCode, stateCode: location.stateCode }; }; Common.prototype.parseCoordinates = function (coordinates) { return { latitude: coordinates.latitude, longitude: coordinates.longitude }; }; Common.prototype.parseReviews = function (reviews) { var _this = this; return { reviews: utils_1.ios.collections.nsArrayToJSArray(reviews.reviews).map((function (review) { return _this.parseReview(review); })), total: reviews.total }; }; Common.prototype.parseReview = function (review) { return { message: review.excerpt, rating: review.rating, timeCreate: review.timeCreated.toISOString(), user: review.user.name }; }; Common.prototype.formatSearchQuery = function (location, category, deals, limit, offset, radius, sort, searchTerm) { var query; if (location.hasOwnProperty('latitude')) { var coordinates = location; var queryLocation = new YLPCoordinate(coordinates); query = new YLPQuery({ coordinate: queryLocation }); } else { query = new YLPQuery({ location: location }); } if (category) { query.categoryFilter = utils_1.ios.collections.jsArrayToNSArray(category); } if (deals) { query['dealsFilter'] = deals; } if (limit) { query['limit'] = limit; } if (offset) { query['offset'] = offset; } if (radius) { query['radiusFilter'] = radius; } if (sort) { query['sort'] = this.sortMap[sort]; } if (searchTerm) { query['term'] = searchTerm; } console.log(query.radiusFilter); return query; }; Common.prototype.parseAndroidReviews = function (reviews, total) { var data = { total: total, reviews: [] }; for (var i = 0; i < reviews.size(); i++) { var review = reviews.get(i); var reviewData = { message: review.getText(), rating: review.getRating(), timeCreate: review.getTimeCreated(), user: review.getUser().getName() }; data.reviews.push(reviewData); } return data; }; Common.prototype.parseAndroidBusinesses = function (businesses) { var results = []; for (var i = 0; i < businesses.size(); i++) { results.push(this.parseAndroidBusiness(businesses.get(i))); } return results; }; Common.prototype.parseAndroidBusiness = function (business) { return { id: business.getId(), name: business.getName(), closed: business.getIsClosed(), website: business.getUrl(), categories: this.parseAndroidCategory(business.getCategories()), location: this.parseLocation(business.getLocation(), business.getCoordinates()), rating: business.getRating(), imageUrl: business.getImageUrl(), reviewCount: business.getReviewCount(), phone: business.getPhone() }; }; Common.prototype.parseAndroidCategory = function (categories) { var data = []; for (var i = 0; i < categories.size(); i++) { var category = categories.get(i); var result = { alias: category.getAlias(), name: category.getTitle() }; data.push(result); } return data; }; Common.prototype.parseLocation = function (location, coordinates) { return { address: location.getAddress1(), city: location.getCity(), coordinates: { latitude: coordinates.getLatitude(), longitude: coordinates.getLongitude() }, countryCode: location.getCountry(), postalCode: location.getZipCode(), stateCode: location.getState() }; }; return Common; }(observable_1.Observable)); exports.Common = Common; //# sourceMappingURL=NSYelpApi.common.js.map