Mirror of https://github.com/roostorg/coop github.com/roostorg/coop
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 557ff54b2b435e5f1e789c6a8a4e1bebf2d7deb6 62 lines 2.2 kB view raw
1import { type Kysely } from 'kysely'; 2 3import { type ManualReviewToolServicePg } from '../dbTypes.js'; 4 5export default class ManualReviewToolSettings { 6 constructor(readonly pgQuery: Kysely<ManualReviewToolServicePg>) {} 7 8 async upsertDefaultSettings(opts: { orgId: string }) { 9 const { orgId } = opts; 10 11 await this.pgQuery 12 .insertInto('manual_review_tool.manual_review_tool_settings') 13 .values({ 14 org_id: orgId, 15 requires_policy_for_decisions: false, 16 mrt_requires_decision_reason: false, 17 hide_skip_button_for_non_admins: false, 18 preview_jobs_view_enabled: false, 19 ignore_callback_url: undefined, 20 }) 21 .onConflict((oc) => oc.column('org_id').doNothing()) 22 .execute(); 23 } 24 25 async getRequiresPolicyForDecisions(orgId: string) { 26 const requiresPolicyForDecisionsRow = await this.pgQuery 27 .selectFrom('manual_review_tool.manual_review_tool_settings') 28 .select(['org_id', 'requires_policy_for_decisions']) 29 .where('org_id', '=', orgId) 30 .executeTakeFirst(); 31 return ( 32 requiresPolicyForDecisionsRow?.requires_policy_for_decisions ?? false 33 ); 34 } 35 36 async getRequiresDecisionReason(orgId: string) { 37 const decisionReasonRow = await this.pgQuery 38 .selectFrom('manual_review_tool.manual_review_tool_settings') 39 .select(['org_id', 'mrt_requires_decision_reason']) 40 .where('org_id', '=', orgId) 41 .executeTakeFirst(); 42 return decisionReasonRow?.mrt_requires_decision_reason ?? false; 43 } 44 45 async getHideSkipButtonForNonAdmins(orgId: string) { 46 const hideSkipButtonRow = await this.pgQuery 47 .selectFrom('manual_review_tool.manual_review_tool_settings') 48 .select(['org_id', 'hide_skip_button_for_non_admins']) 49 .where('org_id', '=', orgId) 50 .executeTakeFirst(); 51 return hideSkipButtonRow?.hide_skip_button_for_non_admins ?? false; 52 } 53 54 async getPreviewJobsViewEnabled(orgId: string) { 55 const row = await this.pgQuery 56 .selectFrom('manual_review_tool.manual_review_tool_settings') 57 .select(['preview_jobs_view_enabled']) 58 .where('org_id', '=', orgId) 59 .executeTakeFirst(); 60 return row?.preview_jobs_view_enabled ?? false; 61 } 62}