mirror of
https://github.com/nkanaev/yarr.git
synced 2025-09-13 18:00:05 +00:00
single, stateless endpoint for item list
This commit is contained in:
@@ -12,6 +12,13 @@
|
||||
var json = function(res) {
|
||||
return res.json()
|
||||
}
|
||||
|
||||
var param = function(query) {
|
||||
if (!query) return ''
|
||||
return '?' + Object.keys(query).map(function(key) {
|
||||
return encodeURIComponent(key) + '=' + encodeURIComponent(query[key])
|
||||
}).join('&')
|
||||
}
|
||||
|
||||
window.api = {
|
||||
feeds: {
|
||||
@@ -49,8 +56,8 @@
|
||||
}
|
||||
},
|
||||
items: {
|
||||
list: function() {
|
||||
return api('get', '/api/items').then(json)
|
||||
list: function(query) {
|
||||
return api('get', '/api/items' + param(query)).then(json)
|
||||
},
|
||||
update: function(id, data) {
|
||||
return api('put', '/api/items/' + id, data)
|
||||
|
@@ -77,19 +77,21 @@ var vm = new Vue({
|
||||
},
|
||||
refreshItems: function() {
|
||||
var promise = null
|
||||
if (!this.feedSelected) {
|
||||
promise = api.items.list()
|
||||
} else {
|
||||
var query = {}
|
||||
if (this.feedSelected) {
|
||||
var parts = this.feedSelected.split(':', 2)
|
||||
var type = parts[0]
|
||||
var guid = parts[1]
|
||||
if (type === 'feed') {
|
||||
promise = api.feeds.list_items(guid)
|
||||
if (type == 'feed') {
|
||||
query.feed_id = guid
|
||||
} else if (type == 'folder') {
|
||||
promise = api.folders.list_items(guid)
|
||||
query.folder_id = guid
|
||||
}
|
||||
}
|
||||
promise.then(function(items) {
|
||||
if (this.filterSelected) {
|
||||
query.status = this.filterSelected
|
||||
}
|
||||
api.items.list(query).then(function(items) {
|
||||
vm.items = items
|
||||
})
|
||||
},
|
||||
|
Reference in New Issue
Block a user