39 lines
958 B
JavaScript
39 lines
958 B
JavaScript
'use strict';
|
|
|
|
const BaseRepository = require('../../shared/database/BaseRepository');
|
|
const { View } = require('../../models');
|
|
|
|
class ViewsRepository extends BaseRepository {
|
|
constructor() {
|
|
super(View);
|
|
}
|
|
|
|
async findAllByUser(userId) {
|
|
return this.model.findAll({
|
|
where: { user_id: userId },
|
|
order: [
|
|
['is_pinned', 'DESC'],
|
|
['created_at', 'DESC'],
|
|
],
|
|
});
|
|
}
|
|
|
|
async findPinnedByUser(userId) {
|
|
return this.model.findAll({
|
|
where: { user_id: userId, is_pinned: true },
|
|
order: [['created_at', 'DESC']],
|
|
});
|
|
}
|
|
|
|
async findByUidAndUser(uid, userId) {
|
|
return this.model.findOne({
|
|
where: { uid, user_id: userId },
|
|
});
|
|
}
|
|
|
|
async createForUser(userId, data) {
|
|
return this.model.create({ ...data, user_id: userId });
|
|
}
|
|
}
|
|
|
|
module.exports = new ViewsRepository();
|