@@ -9,7 +9,6 @@ import { sleep } from "../../lib/utils";
9
9
import logger from "../../logger" ;
10
10
import { eventBus , EventType } from "../event-bus" ;
11
11
import { selectionsByType } from "../lib/graphql" ;
12
- import { cacheOpts , memoizer } from "../memoredis" ;
13
12
import { cacheableData , r } from "../models" ;
14
13
import { sqlResolvers } from "./lib/utils" ;
15
14
@@ -361,26 +360,25 @@ export async function allCurrentAssignmentTargets(organizationId) {
361
360
return teamToCampaigns ;
362
361
}
363
362
364
- const memoizedMyCurrentAssignmentTargets = memoizer . memoize (
365
- async ( {
366
- myTeamIds,
367
- myEscalationTags,
368
- generalEnabledBit,
369
- campaignView,
370
- orgMaxRequestCount,
371
- assignmentType,
372
- organizationId
373
- } ) => {
374
- const { rows : teamToCampaigns } = await r . reader . raw (
375
- /**
376
- * This query is the same as allCurrentAssignmentTargets, except
377
- * - it restricts teams to those with is_assignment_enabled = true via the where clause in team_assignment_options
378
- * - it adds all_possible_team_assignments to set up my_possible_team_assignments
379
- *
380
- * @> is the Postgresql array includes operator
381
- * ARRAY[1,2,3] @> ARRAY[1,2] is true
382
- */
383
- `
363
+ const memoizedMyCurrentAssignmentTargets = async ( {
364
+ myTeamIds,
365
+ myEscalationTags,
366
+ generalEnabledBit,
367
+ campaignView,
368
+ orgMaxRequestCount,
369
+ assignmentType,
370
+ organizationId
371
+ } ) => {
372
+ const { rows : teamToCampaigns } = await r . reader . raw (
373
+ /**
374
+ * This query is the same as allCurrentAssignmentTargets, except
375
+ * - it restricts teams to those with is_assignment_enabled = true via the where clause in team_assignment_options
376
+ * - it adds all_possible_team_assignments to set up my_possible_team_assignments
377
+ *
378
+ * @> is the Postgresql array includes operator
379
+ * ARRAY[1,2,3] @> ARRAY[1,2] is true
380
+ */
381
+ `
384
382
with needs_message_teams as (
385
383
select * from team
386
384
where assignment_type = 'UNSENT'
@@ -494,21 +492,19 @@ const memoizedMyCurrentAssignmentTargets = memoizer.memoize(
494
492
select * from all_possible_team_assignments
495
493
where enabled = true
496
494
order by priority, id asc` ,
497
- [ myTeamIds , myTeamIds , myEscalationTags , organizationId ]
498
- ) ;
495
+ [ myTeamIds , myTeamIds , myEscalationTags , organizationId ]
496
+ ) ;
499
497
500
- const results = teamToCampaigns . map ( ( ttc ) =>
501
- Object . assign ( ttc , {
502
- type : ttc . assignment_type ,
503
- campaign : { id : ttc . id , title : ttc . title } ,
504
- count_left : 0
505
- } )
506
- ) ;
498
+ const results = teamToCampaigns . map ( ( ttc ) =>
499
+ Object . assign ( ttc , {
500
+ type : ttc . assignment_type ,
501
+ campaign : { id : ttc . id , title : ttc . title } ,
502
+ count_left : 0
503
+ } )
504
+ ) ;
507
505
508
- return results ;
509
- } ,
510
- cacheOpts . MyCurrentAssignmentTargets
511
- ) ;
506
+ return results ;
507
+ } ;
512
508
513
509
export async function cachedMyCurrentAssignmentTargets ( userId , organizationId ) {
514
510
const {
@@ -755,14 +751,11 @@ export async function myCurrentAssignmentTarget(
755
751
}
756
752
757
753
async function notifyIfAllAssigned ( organizationId , teamsAssignedTo ) {
758
- const doNotification = memoizer . memoize (
759
- async ( { team } ) =>
760
- request
761
- . post ( config . ASSIGNMENT_COMPLETE_NOTIFICATION_URL )
762
- . timeout ( 30000 )
763
- . send ( { team } ) ,
764
- cacheOpts . AssignmentCompleteLock
765
- ) ;
754
+ const doNotification = async ( { team } ) =>
755
+ request
756
+ . post ( config . ASSIGNMENT_COMPLETE_NOTIFICATION_URL )
757
+ . timeout ( 30000 )
758
+ . send ( { team } ) ;
766
759
767
760
if ( config . ASSIGNMENT_COMPLETE_NOTIFICATION_URL ) {
768
761
const assignmentTargets = await allCurrentAssignmentTargets ( organizationId ) ;
@@ -1031,48 +1024,45 @@ export async function fulfillPendingRequestFor(auth0Id) {
1031
1024
throw new AutoassignError ( `No pending request exists for ${ auth0Id } ` ) ;
1032
1025
}
1033
1026
1034
- const doAssignment = memoizer . memoize (
1035
- async ( { pendingAssignmentRequestId : _ignore } ) => {
1036
- const numberAssigned = await r . knex . transaction ( async ( trx ) => {
1037
- try {
1038
- const result = await giveUserMoreTexts (
1039
- pendingAssignmentRequest . user_id ,
1040
- pendingAssignmentRequest . amount ,
1041
- pendingAssignmentRequest . organization_id ,
1042
- pendingAssignmentRequest . preferred_team_id ,
1043
- trx
1044
- ) ;
1027
+ const doAssignment = async ( { pendingAssignmentRequestId : _ignore } ) => {
1028
+ const numberAssigned = await r . knex . transaction ( async ( trx ) => {
1029
+ try {
1030
+ const result = await giveUserMoreTexts (
1031
+ pendingAssignmentRequest . user_id ,
1032
+ pendingAssignmentRequest . amount ,
1033
+ pendingAssignmentRequest . organization_id ,
1034
+ pendingAssignmentRequest . preferred_team_id ,
1035
+ trx
1036
+ ) ;
1045
1037
1046
- await trx ( "assignment_request" )
1047
- . update ( {
1048
- status : "approved"
1049
- } )
1050
- . where ( { id : pendingAssignmentRequest . id } ) ;
1051
-
1052
- return result ;
1053
- } catch ( err ) {
1054
- logger . info (
1055
- `Failed to give user ${ auth0Id } more texts. Marking their request as rejected. ` ,
1056
- err
1057
- ) ;
1038
+ await trx ( "assignment_request" )
1039
+ . update ( {
1040
+ status : "approved"
1041
+ } )
1042
+ . where ( { id : pendingAssignmentRequest . id } ) ;
1058
1043
1059
- // Mark as rejected outside the transaction so it is unaffected by the rollback
1060
- await r
1061
- . knex ( "assignment_request" )
1062
- . update ( {
1063
- status : "rejected"
1064
- } )
1065
- . where ( { id : pendingAssignmentRequest . id } ) ;
1044
+ return result ;
1045
+ } catch ( err ) {
1046
+ logger . info (
1047
+ `Failed to give user ${ auth0Id } more texts. Marking their request as rejected. ` ,
1048
+ err
1049
+ ) ;
1066
1050
1067
- const isFatal = err . isFatal !== undefined ? err . isFatal : true ;
1068
- throw new AutoassignError ( err . message , isFatal ) ;
1069
- }
1070
- } ) ;
1051
+ // Mark as rejected outside the transaction so it is unaffected by the rollback
1052
+ await r
1053
+ . knex ( "assignment_request" )
1054
+ . update ( {
1055
+ status : "rejected"
1056
+ } )
1057
+ . where ( { id : pendingAssignmentRequest . id } ) ;
1071
1058
1072
- return numberAssigned ;
1073
- } ,
1074
- cacheOpts . FullfillAssignmentLock
1075
- ) ;
1059
+ const isFatal = err . isFatal !== undefined ? err . isFatal : true ;
1060
+ throw new AutoassignError ( err . message , isFatal ) ;
1061
+ }
1062
+ } ) ;
1063
+
1064
+ return numberAssigned ;
1065
+ } ;
1076
1066
1077
1067
return doAssignment ( {
1078
1068
pendingAssignmentRequestId : pendingAssignmentRequest . id
@@ -1182,9 +1172,9 @@ export const resolvers = {
1182
1172
? assignment . texter
1183
1173
: loaders . user . load ( assignment . user_id ) ,
1184
1174
campaign : async ( assignment ) => {
1185
- const getCampaign = memoizer . memoize ( async ( { campaignId } ) => {
1175
+ const getCampaign = async ( { campaignId } ) => {
1186
1176
return r . reader ( "campaign" ) . where ( { id : campaignId } ) . first ( "*" ) ;
1187
- } , cacheOpts . CampaignOne ) ;
1177
+ } ;
1188
1178
1189
1179
return getCampaign ( { campaignId : assignment . campaign_id } ) ;
1190
1180
} ,
@@ -1248,15 +1238,12 @@ export const resolvers = {
1248
1238
return contactsQuery ;
1249
1239
} ,
1250
1240
campaignCannedResponses : async ( assignment ) => {
1251
- const getCannedResponses = memoizer . memoize (
1252
- async ( { campaignId, userId } ) => {
1253
- return cacheableData . cannedResponse . query ( {
1254
- userId : userId || "" ,
1255
- campaignId
1256
- } ) ;
1257
- } ,
1258
- cacheOpts . CampaignCannedResponses
1259
- ) ;
1241
+ const getCannedResponses = async ( { campaignId, userId } ) => {
1242
+ return cacheableData . cannedResponse . query ( {
1243
+ userId : userId || "" ,
1244
+ campaignId
1245
+ } ) ;
1246
+ } ;
1260
1247
1261
1248
return getCannedResponses ( { campaignId : assignment . campaign_id } ) ;
1262
1249
} ,
0 commit comments