From 887f7e17f49304a0e6445c07abaa55a53c1ed7c8 Mon Sep 17 00:00:00 2001 From: Wyatt Johnson Date: Thu, 17 May 2018 11:38:00 -0600 Subject: [PATCH] server side --- client/coral-admin/src/components/UserDetail.js | 7 +++++-- client/coral-admin/src/containers/UserDetail.js | 2 ++ client/coral-framework/utils/user.js | 6 +++--- graph/typeDefs.graphql | 8 ++++++++ services/karma.js | 9 +++++++++ 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/client/coral-admin/src/components/UserDetail.js b/client/coral-admin/src/components/UserDetail.js index 723a71eef..070f22ba4 100644 --- a/client/coral-admin/src/components/UserDetail.js +++ b/client/coral-admin/src/components/UserDetail.js @@ -245,9 +245,12 @@ class UserDetail extends React.Component { - {100} + {user.reliable.commenterScore} diff --git a/client/coral-admin/src/containers/UserDetail.js b/client/coral-admin/src/containers/UserDetail.js index 360819dd6..810a336c8 100644 --- a/client/coral-admin/src/containers/UserDetail.js +++ b/client/coral-admin/src/containers/UserDetail.js @@ -185,6 +185,8 @@ export const withUserDetailQuery = withQuery( } reliable { flagger + commenter + commenterScore } state { status { diff --git a/client/coral-framework/utils/user.js b/client/coral-framework/utils/user.js index 693652994..e591fa558 100644 --- a/client/coral-framework/utils/user.js +++ b/client/coral-framework/utils/user.js @@ -55,10 +55,10 @@ export const canUsernameBeUpdated = status => { * retrieves karma value as string */ -export const getKarma = score => { - if (score === 0) { +export const getKarma = reliability => { + if (reliability === null) { return 'neutral'; - } else if (score) { + } else if (reliability) { return 'good'; } else { return 'bad'; diff --git a/graph/typeDefs.graphql b/graph/typeDefs.graphql index 07947af6e..1c323e6f4 100644 --- a/graph/typeDefs.graphql +++ b/graph/typeDefs.graphql @@ -20,9 +20,17 @@ type Reliability { # `null` if the reliability cannot be determined. flagger: Boolean + # flaggerScore will contains the number of agreed flags vs disagred flag + # count. + flaggerScore: Int! + # Commenter will be `true` when the commenter is reliable, `false` if not, or # `null` if the reliability cannot be determined. commenter: Boolean + + # commenterScore the number of approved comments (not untouched) subtracted by + # the number of rejected comments. + commenterScore: Int! } ################################################################################ diff --git a/services/karma.js b/services/karma.js index 58d9da3a0..c39c93a32 100644 --- a/services/karma.js +++ b/services/karma.js @@ -1,6 +1,7 @@ const debug = require('debug')('talk:services:karma'); const UserModel = require('../models/user'); const { TRUST_THRESHOLDS } = require('../config'); +const { get } = require('lodash'); /** * This will create an object with the property name of the action type as the @@ -83,9 +84,17 @@ class KarmaModel { return KarmaService.isReliable('flag', this.model); } + get flaggerScore() { + return get(this.model, 'flag.karma', 0); + } + get commenter() { return KarmaService.isReliable('comment', this.model); } + + get commenterScore() { + return get(this.model, 'comment.karma', 0); + } } /**