{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-jsx/src/client/reactive/components/rewritten/conduit/src/agent.js"],"names":["superagentPromise","_superagent","authStore","commonStore","setAuthStore","newAuthStore","setCommonStore","newCommonStore","superagent","Promise","API_ROOT","encode","encodeURIComponent","handleErrors","err","response","status","logout","responseBody","res","body","tokenPlugin","req","token","set","requests","del","url","use","end","then","get","put","post","Auth","current","login","email","password","user","register","username","save","Tags","getAll","limit","count","p","omitSlug","article","Object","assign","slug","undefined","Articles","all","page","lim","byAuthor","author","byTag","tag","favorite","favoritedBy","feed","unfavorite","update","create","Comments","comment","delete","commentId","forArticle","Profile","follow","unfollow"],"mappings":"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","file":"agent.js","sourcesContent":["import superagentPromise from 'src/external/superagent-promise.js';\nimport _superagent from 'src/external/superagent.js';\n\nlet authStore;\nlet commonStore;\nconst setAuthStore = newAuthStore =>\n  authStore = newAuthStore;\nconst setCommonStore = newCommonStore =>\n  commonStore = newCommonStore;\n\nconst superagent = superagentPromise(_superagent, Promise);\n\nconst API_ROOT = 'https://conduit.productionready.io/api';\n\nconst encode = encodeURIComponent;\n\nconst handleErrors = err => {\n  if (err && err.response && err.response.status === 401 && authStore) {\n    authStore.logout();\n  }\n  return err;\n};\n\nconst responseBody = res => res.body;\n\nconst tokenPlugin = req => {\n  if (commonStore && commonStore.token) {\n    req.set('authorization', `Token ${commonStore.token}`);\n  }\n};\n\nconst requests = {\n  del: url =>\n    superagent\n      .del(`${API_ROOT}${url}`)\n      .use(tokenPlugin)\n      .end(handleErrors)\n      .then(responseBody),\n  get: url =>\n    superagent\n      .get(`${API_ROOT}${url}`)\n      .use(tokenPlugin)\n      .end(handleErrors)\n      .then(responseBody),\n  put: (url, body) =>\n    superagent\n      .put(`${API_ROOT}${url}`, body)\n      .use(tokenPlugin)\n      .end(handleErrors)\n      .then(responseBody),\n  post: (url, body) =>\n    superagent\n      .post(`${API_ROOT}${url}`, body)\n      .use(tokenPlugin)\n      .end(handleErrors)\n      .then(responseBody),\n};\n\nconst Auth = {\n  current: () =>\n    requests.get('/user'),\n  login: (email, password) =>\n    requests.post('/users/login', { user: { email, password } }),\n  register: (username, email, password) =>\n    requests.post('/users', { user: { username, email, password } }),\n  save: user =>\n    requests.put('/user', { user })\n};\n\nconst Tags = {\n  getAll: () => requests.get('/tags')\n};\n\nconst limit = (count, p) => `limit=${count}&offset=${p ? (p - 1) * count : 0}`;\nconst omitSlug = article => Object.assign({}, article, { slug: undefined })\n\nconst Articles = {\n  all: (page = 0, lim = 10) =>\n    requests.get(`/articles?${limit(lim, page)}`),\n  byAuthor: (author, page = 0, lim = 10) =>\n    requests.get(`/articles?author=${encode(author)}&${limit(lim, page)}`),\n  byTag: (tag, page = 0, lim = 10) =>\n    requests.get(`/articles?tag=${encode(tag)}&${limit(lim, page)}`),\n  del: slug =>\n    requests.del(`/articles/${slug}`),\n  favorite: slug =>\n    requests.post(`/articles/${slug}/favorite`),\n  favoritedBy: (author, page = 0, lim = 10) =>\n    requests.get(`/articles?favorited=${encode(author)}&${limit(lim, page)}`),\n  feed: (page = 0, lim = 10) =>\n    requests.get(`/articles/feed?${limit(lim, page)}`),\n  get: slug =>\n    requests.get(`/articles/${slug}`),\n  unfavorite: slug =>\n    requests.del(`/articles/${slug}/favorite`),\n  update: article =>\n    requests.put(`/articles/${article.slug}`, { article: omitSlug(article) }),\n  create: article =>\n    requests.post('/articles', { article })\n};\n\nconst Comments = {\n  create: (slug, comment) =>\n    requests.post(`/articles/${slug}/comments`, { comment }),\n  delete: (slug, commentId) =>\n    requests.del(`/articles/${slug}/comments/${commentId}`),\n  forArticle: slug =>\n    requests.get(`/articles/${slug}/comments`)\n};\n\nconst Profile = {\n  follow: username =>\n    requests.post(`/profiles/${username}/follow`),\n  get: username =>\n    requests.get(`/profiles/${username}`),\n  unfollow: username =>\n    requests.del(`/profiles/${username}/follow`)\n};\n\nexport default {\n  setAuthStore,\n  setCommonStore,\n  Articles,\n  Auth,\n  Comments,\n  Profile,\n  Tags,\n};"]}