2018-01-19 04:25:34 +00:00
|
|
|
import { get, paramsString } from '../ajax'
|
2018-01-19 05:52:58 +00:00
|
|
|
import { basename } from './utils'
|
2018-01-19 04:25:34 +00:00
|
|
|
|
2018-01-22 04:02:32 +00:00
|
|
|
function getTimelineUrlName(timeline) {
|
|
|
|
switch (timeline) {
|
|
|
|
case 'local':
|
|
|
|
case 'federated':
|
|
|
|
return 'public'
|
|
|
|
case 'home':
|
|
|
|
return 'home'
|
|
|
|
default:
|
|
|
|
return 'tag'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-01-19 07:37:43 +00:00
|
|
|
export function getTimeline(instanceName, accessToken, timeline, maxId, since) {
|
2018-01-22 04:02:32 +00:00
|
|
|
let timelineUrlName = getTimelineUrlName(timeline)
|
2018-01-19 07:37:43 +00:00
|
|
|
let url = `${basename(instanceName)}/api/v1/timelines/${timelineUrlName}`
|
2018-01-19 04:25:34 +00:00
|
|
|
|
2018-01-22 04:02:32 +00:00
|
|
|
if (timeline.startsWith('tag/')) {
|
|
|
|
url += '/' + timeline.split('/').slice(-1)[0]
|
|
|
|
}
|
|
|
|
|
2018-01-19 04:25:34 +00:00
|
|
|
let params = {}
|
|
|
|
if (since) {
|
|
|
|
params.since = since
|
|
|
|
}
|
|
|
|
|
|
|
|
if (maxId) {
|
|
|
|
params.max_id = maxId
|
|
|
|
}
|
|
|
|
|
2018-01-19 07:37:43 +00:00
|
|
|
if (timeline === 'local') {
|
|
|
|
params.local = true
|
|
|
|
}
|
|
|
|
|
2018-01-19 04:25:34 +00:00
|
|
|
url += '?' + paramsString(params)
|
|
|
|
|
|
|
|
return get(url, {
|
|
|
|
'Authorization': `Bearer ${accessToken}`
|
|
|
|
})
|
|
|
|
}
|