|
@@ -1,3 +1,27 @@
|
|
|
+const applyParamsToUrl = (url, filter) => {
|
|
|
+ if (filter) {
|
|
|
+ let filteredEntities = ''
|
|
|
+ if (url.indexOf('?') === -1) {
|
|
|
+ url += '?'
|
|
|
+ } else {
|
|
|
+ url += '&'
|
|
|
+ }
|
|
|
+
|
|
|
+ Object.keys(filter).forEach(key => {
|
|
|
+ filteredEntities += `${key}=${filter[key]}&`
|
|
|
+ })
|
|
|
+
|
|
|
+ if (filteredEntities.slice(-1) === '&') {
|
|
|
+ filteredEntities = filteredEntities.slice(0, -1)
|
|
|
+ }
|
|
|
+
|
|
|
+ return url + filteredEntities
|
|
|
+ }
|
|
|
+
|
|
|
+ return url
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
export const state = () => ({
|
|
|
item: {},
|
|
|
items: {
|
|
@@ -17,6 +41,20 @@ export const actions = {
|
|
|
commit('setBlogs', {resource: 'all', blogs})
|
|
|
return state.items.all
|
|
|
},
|
|
|
+
|
|
|
+ // /api/v1/blogs?filter[featured]=true
|
|
|
+ async fetchFeaturedBlogs({commit, state}, filter) {
|
|
|
+ const url = applyParamsToUrl('/api/v1/blogs', filter)
|
|
|
+ const data = await this.$axios.$get(url)
|
|
|
+ if(data.isAxiosError === true){
|
|
|
+ console.log(data.data)
|
|
|
+ return Error('')
|
|
|
+ }
|
|
|
+ const { blogs } = data
|
|
|
+ commit('setBlogs', {resource: 'featured', blogs})
|
|
|
+ return state.items.featured
|
|
|
+ },
|
|
|
+
|
|
|
async fetchBlogBySlug({commit, state}, slug) {
|
|
|
const blog = await this.$axios.$get(`/api/v1/blogs/s/${slug}`)
|
|
|
if(blog.isAxiosError === true){
|