diff options
| author | Roger Braun <roger@rogerbraun.net> | 2016-10-28 14:26:51 +0200 |
|---|---|---|
| committer | Roger Braun <roger@rogerbraun.net> | 2016-10-28 14:26:51 +0200 |
| commit | f8d6fe41f0c639ce1c3f8072ef94de8e3419f1cf (patch) | |
| tree | 385e5a0b4d8c0b81094d7f6e7e8df02fde51dcb6 /src/services/api/api.service.js | |
| parent | 7ce6bbcf30746a1691a8ff1e09048c78ec350bbe (diff) | |
Start fetching.
Diffstat (limited to 'src/services/api/api.service.js')
| -rw-r--r-- | src/services/api/api.service.js | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index ac27865f..9e7da9de 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -1,8 +1,8 @@ /* 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 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'; @@ -14,16 +14,38 @@ const LOGIN_URL = '/api/account/verify_credentials.json' // 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 - }) - // return $http.post(LOGIN_URL, null, { headers: authHeaders }); +const authHeaders = (user) => ({ 'Authorization': `Basic ${btoa(`${user.username}:${user.password}`)}` }) + +const fetchTimeline = ({timeline, credentials, 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(credentials) }).then((data) => data.json()) +} + +const verifyCredentials = (user) => { + return fetch(LOGIN_URL, { + method: 'POST', + headers: authHeaders(user) + }) +} + +const apiService = { + verifyCredentials, + fetchTimeline } export default apiService |
