mirror of
https://github.com/wassname/talk.git
synced 2026-07-02 20:48:50 +08:00
59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
const Asset = {
|
|
lastComment({id}, _, {loaders: {Comments}}) {
|
|
return Comments.getByQuery({
|
|
asset_id: id,
|
|
limit: 1,
|
|
parent_id: null
|
|
}).then((data) => data[0]);
|
|
},
|
|
recentComments({id}, _, {loaders: {Comments}}) {
|
|
return Comments.genRecentComments.load(id);
|
|
},
|
|
comments({id}, {sort, limit, excludeIgnored}, {loaders: {Comments}}) {
|
|
return Comments.getByQuery({
|
|
asset_id: id,
|
|
sort,
|
|
limit,
|
|
parent_id: null,
|
|
excludeIgnored,
|
|
});
|
|
},
|
|
commentCount({id, commentCount}, {excludeIgnored}, {user, loaders: {Comments}}) {
|
|
|
|
// TODO: remove
|
|
if (user && excludeIgnored) {
|
|
return Comments.parentCountByAssetIDPersonalized({assetId: id, excludeIgnored});
|
|
}
|
|
if (commentCount != null) {
|
|
return commentCount;
|
|
}
|
|
return Comments.parentCountByAssetID.load(id);
|
|
},
|
|
totalCommentCount({id, totalCommentCount}, {excludeIgnored}, {user, loaders: {Comments}}) {
|
|
|
|
// TODO: remove
|
|
if (user && excludeIgnored) {
|
|
return Comments.countByAssetIDPersonalized({assetId: id, excludeIgnored});
|
|
}
|
|
if (totalCommentCount != null) {
|
|
return totalCommentCount;
|
|
}
|
|
return Comments.countByAssetID.load(id);
|
|
},
|
|
async settings({settings = null}, _, {loaders: {Settings}}) {
|
|
|
|
// Load the global settings, and merge them into the asset specific settings
|
|
// if we have some.
|
|
let globalSettings = await Settings.load();
|
|
if (settings !== null) {
|
|
settings = Object.assign({}, globalSettings.toObject(), settings);
|
|
} else {
|
|
settings = globalSettings.toObject();
|
|
}
|
|
|
|
return settings;
|
|
}
|
|
};
|
|
|
|
module.exports = Asset;
|