Skip to content

Commit

Permalink
Ability to filter feed by prize (#99)
Browse files Browse the repository at this point in the history
* Adjust routes to filter based take in prize

* Adjust contest controller to filter based on prize

* Add prize parameter to contest service

* Add ability to filter feed by prize
  • Loading branch information
tobias-g1 committed Oct 31, 2018
1 parent a822510 commit c4f616b
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 14 deletions.
26 changes: 22 additions & 4 deletions client/src/components/filter-panel/filter-panel.vue
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@
<el-option label="Newest" default value="newest"></el-option>
<el-option label="Oldest" value="oldest"></el-option>
</el-select>
<el-select v-model="prizeFilter" placeholder="Select Prize">
<el-option label="Any" default value="any"></el-option>
<el-option label="STEEM" default value="STEEM"></el-option>
<el-option label="SBD" default value="SBD"></el-option>
<el-option label="Steem Monsters" default value="Steem Monsters"></el-option>
<el-option label="Other" default value="Other"></el-option>
<el-option label="None" default value="None"></el-option>
</el-select>
</div>
</template>

Expand All @@ -24,7 +32,8 @@ export default {
data () {
return {
activecategory: 'all',
sortOrder: 'newest'
sortOrder: 'newest',
prizeFilter: 'any'
}
},
mixins: [dsteem],
Expand All @@ -35,7 +44,8 @@ export default {
async getFilteredContests (category) {
const response = await contestsServices.getContestsByCategory({
category: category,
sortOrder: this.sortOrder
sortOrder: this.sortOrder,
prize: this.prizeFilter
})
let messages = []
response.data.contests.forEach((contest, index) => {
Expand All @@ -50,7 +60,10 @@ export default {
})
},
async getContests (category) {
const response = await contestsServices.getContests(this.sortOrder)
const response = await contestsServices.getContests({
sortOrder: this.sortOrder,
prize: this.prizeFilter
})
let messages = []
response.data.contests.forEach((contest, index) => {
this.loadPost(contest.author, contest.permlink)
Expand All @@ -65,8 +78,13 @@ export default {
})
}
},
computed: {
filterOptions: function () {
return `${this.sortOrder}||${this.prizeFilter}`
}
},
watch: {
sortOrder () {
filterOptions () {
(this.activecategory === 'all') ? this.getContests() : this.getFilteredContests(this.activecategory)
}
}
Expand Down
4 changes: 2 additions & 2 deletions client/src/services/contests.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ import api from '@/services/api.js'
export default {

getContests (params) {
return api().get(`/contests/all/${params}`)
return api().get(`/contests/all/${params.sortOrder}/${params.prize}`)
},
createContest (params) {
return api().post('/contests/create_contest', params)
},
getContestsByCategory (params) {
return api().get(`/contests/category/${params.category}/${params.sortOrder}`)
return api().get(`/contests/category/${params.category}/${params.sortOrder}/${params.prize}`)
},
getContestByPermlink (params) {
return api().get(`/contests/permlink/${params}`)
Expand Down
12 changes: 6 additions & 6 deletions server/src/controllers/contests.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,10 @@ exports.get_contests = function (req, res) {
}
break;
}

let query = (req.params.prize === 'any') ? {} : {"prize.type": req.params.prize}

console.log(sortmethod)

Contest.find({}, function (error, contests) {
Contest.find(query, function (error, contests) {
if (error) {
console.error(error);
}
Expand Down Expand Up @@ -83,9 +83,9 @@ exports.get_contests_by_category = function (req, res) {
break;
}

Contest.find({
category: req.params.category
}, function (error, contests) {
let query = (req.params.prize === 'any') ? {} : {"category": req.params.category, "prize.type": req.params.prize}

Contest.find(query, function (error, contests) {
if (error) {
console.error(error);
}
Expand Down
4 changes: 2 additions & 2 deletions server/src/routes/contests.route.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ router.post('/create_contest', validate(create_contest), checkSteemConnect, vali
router.put('/set_winners/', validate(set_winners), checkSteemConnect, validatePermissions, checkUser, contest_controller.set_winners);
router.put('/edit_contest/', validate(edit_contest), checkSteemConnect, validatePermissions, checkUser, contest_controller.edit_contest);

router.get('/all/:sortby', contest_controller.get_contests);
router.get('/category/:category/:sortby', contest_controller.get_contests_by_category);
router.get('/all/:sortby/:prize', contest_controller.get_contests);
router.get('/category/:category/:sortby/:prize', contest_controller.get_contests_by_category);
router.get('/permlink/:permlink', contest_controller.get_contest_by_permlink);

// Export
Expand Down

0 comments on commit c4f616b

Please sign in to comment.