@@ -52,6 +52,7 @@ import {MemberPlatformAccountService} from "../../organization/member-platform-a
5252import { OrganizationService } from "../../organization" ;
5353import { MemberService } from "../../organization/member/member.service" ;
5454import { GameSkillGroupService } from "../game-skill-group" ;
55+ import { RosterAuthorityService } from "../roster-authority.service" ;
5556import type { RankdownJwtPayload } from "./player.types" ;
5657import type { CreatePlayerTuple } from "./player.types" ;
5758
@@ -87,12 +88,23 @@ export class PlayerService {
8788 private readonly eloConnectorService : EloConnectorService ,
8889 private readonly platformService : PlatformService ,
8990 private readonly analyticsService : AnalyticsService ,
91+ private readonly rosterAuthorityService : RosterAuthorityService ,
9092 @Inject ( forwardRef ( ( ) => MemberPlatformAccountService ) )
9193 private readonly memberPlatformAccountService : MemberPlatformAccountService ,
9294 @Inject ( forwardRef ( ( ) => MledbPlayerAccountService ) )
9395 private readonly mledbPlayerAccountService : MledbPlayerAccountService ,
9496 ) { }
9597
98+ private async syncRosterAuthorityAfterMleSave ( mlePlayerId : number ) : Promise < void > {
99+ try {
100+ await this . rosterAuthorityService . syncFromMlePlayerId ( mlePlayerId ) ;
101+ } catch ( err ) {
102+ this . logger . warn (
103+ `Roster authority sync failed for MLE player ${ mlePlayerId } : ${ err instanceof Error ? err . message : String ( err ) } ` ,
104+ ) ;
105+ }
106+ }
107+
96108 async getPlayer ( query : FindOneOptions < Player > ) : Promise < Player > {
97109 this . logger . debug ( `getPlayer: ${ JSON . stringify ( query ) } ` ) ;
98110 return this . playerRepository . findOneOrFail ( query ) ;
@@ -405,6 +417,11 @@ export class PlayerService {
405417 throw new Error ( `Tried updating player with MLEID: ${ mleid } , but that MLEID does not yet exist.` ) ;
406418 }
407419 await runner . commitTransaction ( ) ;
420+
421+ const mleAfter = await this . mle_playerRepository . findOne ( { where : { mleid} } ) ;
422+ if ( mleAfter ) {
423+ await this . syncRosterAuthorityAfterMleSave ( mleAfter . id ) ;
424+ }
408425 } catch ( e ) {
409426 await runner . rollbackTransaction ( ) ;
410427 this . logger . error ( e ) ;
@@ -441,9 +458,10 @@ export class PlayerService {
441458 } ) ;
442459
443460 if ( runner ) {
444- await runner . manager . save ( player ) ;
461+ await runner . manager . save ( MLE_Player , updatedPlayer ) ;
445462 } else {
446- await this . mle_playerRepository . save ( player ) ;
463+ await this . mle_playerRepository . save ( updatedPlayer ) ;
464+ await this . syncRosterAuthorityAfterMleSave ( updatedPlayer . id ) ;
447465 }
448466
449467 return updatedPlayer ;
@@ -500,6 +518,7 @@ export class PlayerService {
500518 await runner . manager . save ( ptpBridge ) ;
501519 } else {
502520 await this . ptpRepo . save ( ptpBridge ) ;
521+ await this . syncRosterAuthorityAfterMleSave ( player . id ) ;
503522 }
504523
505524 return player ;
@@ -854,6 +873,7 @@ export class PlayerService {
854873 } ) ;
855874
856875 await this . mle_playerRepository . save ( newMlePlayer ) ;
876+ await this . syncRosterAuthorityAfterMleSave ( newMlePlayer . id ) ;
857877
858878 this . logger . debug ( `Player ${ playerDelta . playerId } : Salary update complete` ) ;
859879 }
@@ -908,6 +928,7 @@ export class PlayerService {
908928 const mlePlayer = await this . getMlePlayerBySprocketPlayer ( sprocPlayerId ) ;
909929 mlePlayer . salary = salary ;
910930 await this . mle_playerRepository . save ( mlePlayer ) ;
931+ await this . syncRosterAuthorityAfterMleSave ( mlePlayer . id ) ;
911932 return mlePlayer ;
912933 }
913934
@@ -938,6 +959,7 @@ export class PlayerService {
938959 }
939960
940961 await this . mle_playerRepository . save ( player ) ;
962+ await this . syncRosterAuthorityAfterMleSave ( player . id ) ;
941963
942964 return player ;
943965 }
@@ -973,6 +995,7 @@ export class PlayerService {
973995 } ) ;
974996
975997 await this . mle_playerRepository . save ( player ) ;
998+ await this . syncRosterAuthorityAfterMleSave ( player . id ) ;
976999
9771000 // Move player to Waiver Wire
9781001 // TODO fix later when we abstract away from MLE
@@ -1020,6 +1043,7 @@ export class PlayerService {
10201043 } ) ;
10211044
10221045 await this . mle_playerRepository . save ( player ) ;
1046+ await this . syncRosterAuthorityAfterMleSave ( player . id ) ;
10231047 return player ;
10241048 }
10251049
@@ -1342,6 +1366,19 @@ export class PlayerService {
13421366 await runner . commitTransaction ( ) ;
13431367 this . logger . log ( `Transaction committed successfully` ) ;
13441368
1369+ const rlPlayers = await this . playerRepository . find ( {
1370+ where : {
1371+ member : { user : { id : user . id } } ,
1372+ skillGroup : { game : { id : 7 } } ,
1373+ } ,
1374+ } ) ;
1375+ for ( const pl of rlPlayers ) {
1376+ const bridge = await this . ptpRepo . findOne ( { where : { sprocketPlayerId : pl . id } } ) ;
1377+ if ( bridge ) {
1378+ await this . syncRosterAuthorityAfterMleSave ( bridge . mledPlayerId ) ;
1379+ }
1380+ }
1381+
13451382 const result = `Successfully created/updated user with ID ${ user . id } .` ;
13461383 this . logger . log ( `=== INTAKE USER COMPLETED ===` ) ;
13471384 this . logger . log ( `Result: ${ result } ` ) ;
@@ -1406,6 +1443,7 @@ export class PlayerService {
14061443 } ) ;
14071444 mlePlayer . discordId = newAcct ;
14081445 await this . mle_playerRepository . save ( mlePlayer ) ;
1446+ await this . syncRosterAuthorityAfterMleSave ( mlePlayer . id ) ;
14091447
14101448 // Then, follow up with Sprocket.
14111449 const uaa = await this . userAuthRepository . findOneOrFail ( {
@@ -1425,6 +1463,7 @@ export class PlayerService {
14251463 } ) ;
14261464 mlePlayer . teamName = newTeam ;
14271465 await this . mle_playerRepository . save ( mlePlayer ) ;
1466+ await this . syncRosterAuthorityAfterMleSave ( mlePlayer . id ) ;
14281467 }
14291468
14301469 async changePlayerName ( mleid : number , newName : string ) : Promise < void > {
0 commit comments