66 parseBlockNumbersPayload ,
77 parseBlockRangePayload ,
88 parseTokenRangePayload ,
9+ NextBlocksQueryParams ,
910} from './pg.payload.parsers' ;
10- import { BlockService } from '../services/block.service' ;
1111import { TokenReScanner } from './token.rescaner' ;
1212import { CollectionService } from '../services/collection.service' ;
1313import { TokenService } from '../services/token/token.service' ;
@@ -20,24 +20,6 @@ enum PG_EVENTS_CHANNELS {
2020 RESCAN_TOKENS = 'rescan_tokens' ,
2121}
2222
23- type ParsedRescanPayload = {
24- from : number ;
25- to : number ;
26- pageSize : number ;
27- eventSections : string [ ] ;
28- } ;
29-
30- type NextBlocksQueryParams = ParsedRescanPayload & {
31- page : number ;
32- } ;
33-
34- const DEFAULT_EVENT_SECTIONS_FOR_RESCAN = [
35- 'common' ,
36- 'unique' ,
37- 'balances' ,
38- 'appPromotion' ,
39- ] ;
40-
4123@Injectable ( )
4224export class PgEventsListener implements OnApplicationBootstrap {
4325 readonly logger = new Logger ( PgEventsListener . name ) ;
@@ -52,8 +34,7 @@ export class PgEventsListener implements OnApplicationBootstrap {
5234 private blocksSubscriberService : BlocksSubscriberService ,
5335 private collectionService : CollectionService ,
5436 private tokenService : TokenService ,
55- private blockService : BlockService ,
56- private tokenReScanner : TokenReScanner ,
37+ private tokenReScanner : TokenReScanner
5738 ) {
5839 const config = {
5940 host : process . env . POSTGRES_HOST ,
@@ -84,6 +65,7 @@ export class PgEventsListener implements OnApplicationBootstrap {
8465 [ PG_EVENTS_CHANNELS . STOP_FAST_RESCAN ] : async ( ) =>
8566 this . stopFastRescan ( 'manual' ) ,
8667 [ PG_EVENTS_CHANNELS . RESCAN_TOKENS ] : this . handleRescanTokens ,
68+ [ PG_EVENTS_CHANNELS . RESCAN_ALL_COLLECTION ] : this . rescanAllCollections ,
8769 } ;
8870
8971 const handler = handlersMap [ channel ] ;
@@ -129,7 +111,7 @@ export class PgEventsListener implements OnApplicationBootstrap {
129111 return ;
130112 }
131113
132- const parsedPayload = PgEventsListener . parseBlockRangePayload ( payload ) ;
114+ const parsedPayload = parseBlockRangePayload ( payload ) ;
133115 const { from, to, pageSize, eventSections } = parsedPayload ;
134116 this . logger . log ( `Going to start fast rescan from ${ from } to ${ to } ` ) ;
135117
@@ -262,33 +244,4 @@ export class PgEventsListener implements OnApplicationBootstrap {
262244 client . release ( ) ;
263245 this . logger . log ( `Rescan for collection ${ collectionId } finished` ) ;
264246 }
265-
266- static parseBlockNumbersPayload ( payload : string ) : number [ ] {
267- return payload
268- . split ( ',' )
269- . map ( ( n ) => parseInt ( n . trim ( ) , 10 ) )
270- . filter ( ( n ) => ! isNaN ( n ) ) ;
271- }
272-
273- static parseBlockRangePayload ( payload : string ) : ParsedRescanPayload {
274- const [ numbersPart , sectionsPart ] = payload . split ( '/' ) ;
275- const numbers = numbersPart . split ( '-' ) . map ( ( n ) => parseInt ( n . trim ( ) , 10 ) ) ;
276-
277- if ( numbers . length < 2 ) {
278- throw new Error (
279- `Invalid block range payload ${ payload } , expected format: from-to[-pageSize][/section,section]`
280- ) ;
281- }
282-
283- const [ from , to , pageSize = 100 ] = numbers ;
284-
285- const eventSections = sectionsPart
286- . split ( ',' )
287- . map ( ( s ) => s . trim ( ) )
288- . filter ( Boolean ) ;
289- if ( eventSections . length === 0 )
290- eventSections . push ( ...DEFAULT_EVENT_SECTIONS_FOR_RESCAN ) ;
291-
292- return { from, to, pageSize, eventSections } ;
293- }
294247}
0 commit comments