ts-foursquare
Version:
A simple library for Foursquare API
3 lines (2 loc) • 6.38 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var n,e,r,o,t,i,a=require("rxjs/operators"),c=require("path-to-regexp"),u=require("rxjs/internal/observable/throwError"),s=require("rxjs/fetch"),p=require("http-response-status");!function(n){n.ORIGIN="https://api.foursquare.com",n.VERSION="20191028"}(n||(n={})),function(n){n.LISTS="/v2/lists/:listId",n.PHOTOS_DETAILS="/v2/photos/:photoId",n.VENUES_CATEGORIES="/v2/venues/categories",n.VENUES_EXPLORE="/v2/venues/explore",n.VENUES_LIKES="/v2/venues/:venueId/likes",n.VENUES_LISTED="/v2/venues/:venueId/listed",n.VENUES_NEXT_VENUES="/v2/venues/:venueId/nextvenues",n.VENUES_SEARCH="/v2/venues/search",n.VENUES_SIMILAR="/v2/venues/:venueId/similar",n.VENUES_SUGGEST_COMPLETION="/v2/venues/suggestcompletion",n.VENUES_TRENDING="/v2/venues/trending"}(e||(e={})),function(n){n.ORIGIN="https://foursquare.com"}(r||(r={})),function(n){n.AUTHENTICATE="/oauth2/authenticate",n.ACCESS_TOKEN="/oauth2/access_token"}(o||(o={})),function(n){n.CODE="code"}(t||(t={})),function(n){n.AUTHORIZATION_CODE="authorization_code"}(i||(i={}));var f=function(n,e){return void 0===n&&(n="/"),void 0===e&&(e={}),"/"===n?n:function(n){return c.compile(n)}(n)(e)};function E(){return(E=Object.assign||function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(n[o]=r[o])}return n}).apply(this,arguments)}var v,g=function(n){return n.ok?n.json():u.throwError(new Error("Error "+n.status))},l=function(n){return u.throwError(new Error(n.message))},d=function(e){var r,o,t,i=e.params;return s.fromFetch(function(n){var e,r,o,t,i=n.params;return""+n.origin+n.pathname+(o=void 0===(r=(void 0===(e={params:void 0===i?{}:i})?{params:{}}:e).params)?{}:r,!!(t=Object.keys(o).filter((function(n){return void 0!==o[n]&&""!==o[n]})).map((function(n){return encodeURIComponent(n)+"="+encodeURIComponent(""+o[n])})).join("&"))&&"?"+t||"")}({origin:n.ORIGIN,pathname:e.pathname,params:E({},(r={config:e.config},o=r.config,t=o.accessToken,t?{oauth_token:t,v:n.VERSION}:{client_id:o.clientId,client_secret:o.clientSecret,v:n.VERSION}),void 0===i?{}:i)}))},h=function(n){return n.meta&&p.getHttpStatusCategory(n.meta.code)===p.HTTP_STATUS_SUCCESS?n.response:void 0};!function(n){n.RESPONSE_NOT_VALID="Response is not valid"}(v||(v={}));var S,m=function(n){var e=h(n);if(!e||!e.list)throw new Error(v.RESPONSE_NOT_VALID);return e.list},I=function(n){var e=h(n);if(!e||!e.photo)throw new Error(v.RESPONSE_NOT_VALID);return e.photo},N=function(n){var e=h(n);return(null==e?void 0:e.categories)||[]},y=function(n){var e,r=h(n);return(null==r?void 0:null===(e=r.groups[0])||void 0===e?void 0:e.items)||[]},_=function(n){var e=h(n);return(null==e?void 0:e.likes)||{count:0,items:[],summary:"0 Likes"}},V=function(n){var e=h(n);return(null==e?void 0:e.lists)||{count:0,groups:[]}},O=function(n){var e=h(n);return(null==e?void 0:e.nextVenues.items)||[]},T=function(n){var e=h(n);return(null==e?void 0:e.venues)||[]},R=function(n){var e=h(n);return(null==e?void 0:e.similarVenues.items)||[]},U=function(n){var e=h(n);return(null==e?void 0:e.minivenues)||[]},P=function(n){return T(n)};(S=exports.EReturnType||(exports.EReturnType={})).OBSERVABLE="OBSERVABLE",S.PROMISE="PROMISE",require("isomorphic-fetch"),exports.tsFoursquare=function(n){var r=n.returnType,o={clientId:n.clientId,clientSecret:n.clientSecret,returnType:void 0===r?exports.EReturnType.PROMISE:r};this.getLists=function(n){var r=n.config;return function(n){return function(n){return d({config:n.config,pathname:f(e.LISTS,{listId:n.payload.listId})}).pipe(a.switchMap(g),a.map(m),a.catchError(l))}({config:r,payload:n.payload}).toPromise()}}({config:o}),this.getPhotosDetails=function(n){var r=n.config;return function(n){return function(n){return d({config:n.config,pathname:f(e.PHOTOS_DETAILS,{photoId:n.payload.photoId})}).pipe(a.switchMap(g),a.map(I),a.catchError(l))}({config:r,payload:n.payload}).toPromise()}}({config:o}),this.getVenuesCategories=function(n){var r=n.config;return function(){return function(n){return d({config:n.config,pathname:e.VENUES_CATEGORIES}).pipe(a.switchMap(g),a.map(N),a.catchError(l))}({config:r}).toPromise()}}({config:o}),this.getVenuesExplore=function(n){var r=n.config;return function(n){return function(n){return d({config:n.config,pathname:e.VENUES_EXPLORE,params:E({},n.payload)}).pipe(a.switchMap(g),a.map(y),a.catchError(l))}({config:r,payload:n.payload}).toPromise()}}({config:o}),this.getVenuesLikes=function(n){var r=n.config;return function(n){var o;return(o={config:r,payload:n.payload},d({config:o.config,pathname:f(e.VENUES_LIKES,{venueId:o.payload.venueId})}).pipe(a.switchMap(g),a.map(_),a.catchError(l))).toPromise()}}({config:o}),this.getVenuesListed=function(n){var r=n.config;return function(n){var o;return(o={config:r,payload:n.payload},d({config:o.config,pathname:f(e.VENUES_LISTED,{venueId:o.payload.venueId})}).pipe(a.switchMap(g),a.map(V),a.catchError(l))).toPromise()}}({config:o}),this.getVenuesNextVenues=function(n){var r=n.config;return function(n){var o;return(o={config:r,payload:n.payload},d({config:o.config,pathname:f(e.VENUES_NEXT_VENUES,{venueId:o.payload.venueId})}).pipe(a.switchMap(g),a.map(O),a.catchError(l))).toPromise()}}({config:o}),this.getVenuesSearch=function(n){var r=n.config;return function(n){var o;return(o={config:r,payload:n.payload},d({config:o.config,pathname:e.VENUES_SEARCH,params:E({},o.payload)}).pipe(a.switchMap(g),a.map(T),a.catchError(l))).toPromise()}}({config:o}),this.getVenuesSimilar=function(n){var r=n.config;return function(n){var o;return(o={config:r,payload:n.payload},d({config:o.config,pathname:f(e.VENUES_SIMILAR,{venueId:o.payload.venueId})}).pipe(a.switchMap(g),a.map(R),a.catchError(l))).toPromise()}}({config:o}),this.getVenuesSuggestCompletion=function(n){var r=n.config;return function(n){var o;return(o={config:r,payload:n.payload},d({config:o.config,pathname:e.VENUES_SUGGEST_COMPLETION,params:E({},o.payload)}).pipe(a.switchMap(g),a.map(U),a.catchError(l))).toPromise()}}({config:o}),this.getVenuesTrending=function(n){var r=n.config;return function(n){var o;return(o={config:r,payload:n.payload},d({config:o.config,pathname:e.VENUES_TRENDING,params:E({},o.payload)}).pipe(a.switchMap(g),a.map(P),a.catchError(l))).toPromise()}}({config:o})};
//# sourceMappingURL=ts-foursquare.cjs.production.min.js.map