@@ -395,6 +395,17 @@ async function createResource (currentUser, resource) {
395395
396396 logger . debug ( `Created resource: ${ JSON . stringify ( ret ) } ` )
397397 await helper . postEvent ( config . RESOURCE_CREATE_TOPIC , ret )
398+ // Increment challenge registrants on submitter registration
399+ if ( resource . roleId === config . SUBMITTER_RESOURCE_ROLE_ID ) {
400+ try {
401+ await helper . prismaChallenge . challenge . update ( {
402+ where : { id : challengeId } ,
403+ data : { numOfRegistrants : { increment : 1 } }
404+ } )
405+ } catch ( e ) {
406+ logger . warn ( `Failed to increment numOfRegistrants for challenge ${ challengeId } : ${ e } ` )
407+ }
408+ }
398409 if ( ! _ . get ( challenge , 'task.isTask' , false ) && resource . roleId === config . SUBMITTER_RESOURCE_ROLE_ID ) {
399410 const forumUrl = _ . get ( challenge , 'discussions[0].url' )
400411 let templateId = config . REGISTRATION_EMAIL . SENDGRID_TEMPLATE_ID
@@ -487,6 +498,17 @@ async function deleteResource (currentUser, resource) {
487498
488499 logger . debug ( `Deleted resource, posting to Bus API: ${ JSON . stringify ( ret ) } ` )
489500 await helper . postEvent ( config . RESOURCE_DELETE_TOPIC , ret )
501+ // Decrement challenge registrants on submitter unregistration
502+ if ( resource . roleId === config . SUBMITTER_RESOURCE_ROLE_ID ) {
503+ try {
504+ await helper . prismaChallenge . challenge . update ( {
505+ where : { id : challengeId } ,
506+ data : { numOfRegistrants : { decrement : 1 } }
507+ } )
508+ } catch ( e ) {
509+ logger . warn ( `Failed to decrement numOfRegistrants for challenge ${ challengeId } : ${ e } ` )
510+ }
511+ }
490512 return ret
491513 } catch ( err ) {
492514 logger . error ( `Delete Resource Error ${ JSON . stringify ( err ) } ` )
0 commit comments