aboutsummaryrefslogtreecommitdiff
path: root/src/services/api/api.service.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/api/api.service.js')
-rw-r--r--src/services/api/api.service.js213
1 files changed, 114 insertions, 99 deletions
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index 3eb8c62a..ac27865f 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -1,101 +1,116 @@
-const LOGIN_URL='/api/account/verify_credentials.json';
-const FRIENDS_TIMELINE_URL='/api/statuses/friends_timeline.json';
-const PUBLIC_TIMELINE_URL='/api/statuses/public_timeline.json';
-const PUBLIC_AND_EXTERNAL_TIMELINE_URL='/api/statuses/public_and_external_timeline.json';
-const CONVERSATION_URL = '/api/statusnet/conversation/';
-const STATUS_UPDATE_URL = '/api/statuses/update.json';
-const MEDIA_UPLOAD_URL = '/api/statusnet/media/upload';
-const FAVORITE_URL = '/api/favorites/create';
-const UNFAVORITE_URL = '/api/favorites/destroy';
-
-const FORM_CONTENT_TYPE = {'Content-Type': 'application/x-www-form-urlencoded'};
-
-import { param, ajax } from 'jquery';
-import { merge } from 'lodash';
-
-// TODO: This should probably be in redux.
-let authHeaders = {};
-
-const apiServiceFactory = ($http) => {
- // Public
- const fetchConversation = (id) => {
- return $http.get(`${CONVERSATION_URL}/${id}.json?count=100`);
- };
-
- const fetchTimeline = ({timeline, since = false, until = false}) => {
- const timelineUrls = {
- public: PUBLIC_TIMELINE_URL,
- friends: FRIENDS_TIMELINE_URL,
- 'public-and-external': PUBLIC_AND_EXTERNAL_TIMELINE_URL
- };
-
- let url = timelineUrls[timeline];
-
- if(since) {
- url += `?since_id=${since}`;
- }
-
- if(until) {
- url += `?max_id=${until}`;
- }
-
- return fetch(url, { headers: authHeaders }).then((data) => data.json());
- };
-
- // Need credentials
- const verifyCredentials = (user) => {
- const base64 = btoa(`${user.username}:${user.password}`);
- authHeaders = { "Authorization": `Basic ${base64}` };
- return $http.post(LOGIN_URL, null, { headers: authHeaders });
- };
-
- const postStatus = ({status, mediaIds, in_reply_to_status_id}) => {
- const idsText = mediaIds.join(',');
- const form = new FormData();
-
- form.append('status', status);
- form.append('source', 'The Wired FE');
- form.append('media_ids', idsText);
- if(in_reply_to_status_id) {
- form.append('in_reply_to_status_id', in_reply_to_status_id);
- };
-
- return fetch(STATUS_UPDATE_URL, {
- body: form,
+/* eslint-env browser */
+const LOGIN_URL = '/api/account/verify_credentials.json'
+// const FRIENDS_TIMELINE_URL='/api/statuses/friends_timeline.json';
+// const PUBLIC_TIMELINE_URL='/api/statuses/public_timeline.json';
+// const PUBLIC_AND_EXTERNAL_TIMELINE_URL='/api/statuses/public_and_external_timeline.json';
+// const CONVERSATION_URL = '/api/statusnet/conversation/';
+// const STATUS_UPDATE_URL = '/api/statuses/update.json';
+// const MEDIA_UPLOAD_URL = '/api/statusnet/media/upload';
+// const FAVORITE_URL = '/api/favorites/create';
+// const UNFAVORITE_URL = '/api/favorites/destroy';
+
+// const FORM_CONTENT_TYPE = {'Content-Type': 'application/x-www-form-urlencoded'};
+
+// import { param, ajax } from 'jquery';
+// import { merge } from 'lodash';
+
+const apiService = {
+ verifyCredentials: (user) => {
+ const base64 = btoa(`${user.username}:${user.password}`)
+ const authHeaders = { 'Authorization': `Basic ${base64}` }
+ return fetch(LOGIN_URL, {
method: 'POST',
headers: authHeaders
- });
- };
-
- const favorite = (id) => $http.post(`${FAVORITE_URL}/${id}.json`, null, {headers: authHeaders});
- const unfavorite = (id) => $http.post(`${UNFAVORITE_URL}/${id}.json`, null, {headers: authHeaders});
-
- // This was impossible to get to work with $http. You're supposed to set Content-Type
- // undefined in the header so it sends the correct header. It would always send a json
- // content type. This method from jQuery worked right away...
- // Also, this method is only available as XML output. OLOLOLOLO
- const uploadMedia = (formData) => ajax({
- url: MEDIA_UPLOAD_URL,
- data: formData,
- type: 'POST',
- processData: false,
- contentType: false,
- headers: authHeaders
- });
-
- const apiService = {
- verifyCredentials,
- fetchConversation,
- postStatus,
- uploadMedia,
- favorite,
- unfavorite,
- fetchTimeline
- };
-
- return apiService;
-};
-
-apiServiceFactory.$inject = ['$http'];
-
-export default apiServiceFactory;
+ })
+ // return $http.post(LOGIN_URL, null, { headers: authHeaders });
+ }
+}
+
+export default apiService
+
+// // TODO: This should probably be in redux.
+// let authHeaders = {};
+
+// const apiServiceFactory = ($http) => {
+// // Public
+// const fetchConversation = (id) => {
+// return $http.get(`${CONVERSATION_URL}/${id}.json?count=100`);
+// };
+
+// const fetchTimeline = ({timeline, since = false, until = false}) => {
+// const timelineUrls = {
+// public: PUBLIC_TIMELINE_URL,
+// friends: FRIENDS_TIMELINE_URL,
+// 'public-and-external': PUBLIC_AND_EXTERNAL_TIMELINE_URL
+// };
+
+// let url = timelineUrls[timeline];
+
+// if(since) {
+// url += `?since_id=${since}`;
+// }
+
+// if(until) {
+// url += `?max_id=${until}`;
+// }
+
+// return fetch(url, { headers: authHeaders }).then((data) => data.json());
+// };
+
+// // Need credentials
+// const verifyCredentials = (user) => {
+// const base64 = btoa(`${user.username}:${user.password}`);
+// authHeaders = { "Authorization": `Basic ${base64}` };
+// return $http.post(LOGIN_URL, null, { headers: authHeaders });
+// };
+
+// const postStatus = ({status, mediaIds, in_reply_to_status_id}) => {
+// const idsText = mediaIds.join(',');
+// const form = new FormData();
+
+// form.append('status', status);
+// form.append('source', 'The Wired FE');
+// form.append('media_ids', idsText);
+// if(in_reply_to_status_id) {
+// form.append('in_reply_to_status_id', in_reply_to_status_id);
+// };
+
+// return fetch(STATUS_UPDATE_URL, {
+// body: form,
+// method: 'POST',
+// headers: authHeaders
+// });
+// };
+
+// const favorite = (id) => $http.post(`${FAVORITE_URL}/${id}.json`, null, {headers: authHeaders});
+// const unfavorite = (id) => $http.post(`${UNFAVORITE_URL}/${id}.json`, null, {headers: authHeaders});
+
+// // This was impossible to get to work with $http. You're supposed to set Content-Type
+// // undefined in the header so it sends the correct header. It would always send a json
+// // content type. This method from jQuery worked right away...
+// // Also, this method is only available as XML output. OLOLOLOLO
+// const uploadMedia = (formData) => ajax({
+// url: MEDIA_UPLOAD_URL,
+// data: formData,
+// type: 'POST',
+// processData: false,
+// contentType: false,
+// headers: authHeaders
+// });
+
+// const apiService = {
+// verifyCredentials,
+// fetchConversation,
+// postStatus,
+// uploadMedia,
+// favorite,
+// unfavorite,
+// fetchTimeline
+// };
+
+// return apiService;
+// };
+
+// apiServiceFactory.$inject = ['$http'];
+
+// export default apiServiceFactory;