@@ -13,6 +13,7 @@ import {
1313 resumeStream as sorobanResumeStream ,
1414} from "../services/sorobanService.js" ;
1515import type { AuthenticatedRequest } from "../types/auth.types.js" ;
16+ import { parseStreamId } from "../lib/stream-id.js" ;
1617import {
1718 DEFAULT_EVENTS_PAGE_SIZE ,
1819 MAX_EVENTS_PAGE_SIZE ,
@@ -128,10 +129,10 @@ export const createStream = async (req: Request, res: Response) => {
128129 } ) ;
129130 }
130131
131- const parsedStreamId = Number . parseInt ( streamId , 10 ) ;
132+ const parsedStreamId = parseStreamId ( streamId ) ;
132133 const parsedStartTime = Number . parseInt ( startTime , 10 ) ;
133134
134- if ( ! Number . isFinite ( parsedStreamId ) ) {
135+ if ( parsedStreamId === null ) {
135136 return res
136137 . status ( 400 )
137138 . json ( { error : "Invalid streamId: must be a valid integer" } ) ;
@@ -347,9 +348,8 @@ export const getStream = async (req: Request, res: Response) => {
347348 const streamIdParam = Array . isArray ( req . params . streamId )
348349 ? req . params . streamId [ 0 ]
349350 : req . params . streamId ;
350- const parsedStreamId = Number . parseInt ( streamIdParam ?? "" , 10 ) ;
351-
352- if ( ! Number . isFinite ( parsedStreamId ) ) {
351+ const parsedStreamId = parseStreamId ( streamIdParam ) ;
352+ if ( parsedStreamId === null ) {
353353 return res . status ( 400 ) . json ( { error : "Invalid streamId parameter" } ) ;
354354 }
355355
@@ -398,9 +398,8 @@ export const getStreamEvents = async (req: Request, res: Response) => {
398398 const streamIdParam = Array . isArray ( req . params . streamId )
399399 ? req . params . streamId [ 0 ]
400400 : req . params . streamId ;
401- const parsedStreamId = Number . parseInt ( streamIdParam ?? "" , 10 ) ;
402-
403- if ( ! Number . isFinite ( parsedStreamId ) ) {
401+ const parsedStreamId = parseStreamId ( streamIdParam ) ;
402+ if ( parsedStreamId === null ) {
404403 return res . status ( 400 ) . json ( { error : "Invalid streamId parameter" } ) ;
405404 }
406405
@@ -489,9 +488,8 @@ export const getStreamClaimableAmount = async (req: Request, res: Response) => {
489488 const streamIdParam = Array . isArray ( req . params . streamId )
490489 ? req . params . streamId [ 0 ]
491490 : req . params . streamId ;
492- const parsedStreamId = Number . parseInt ( streamIdParam ?? "" , 10 ) ;
493-
494- if ( ! Number . isFinite ( parsedStreamId ) ) {
491+ const parsedStreamId = parseStreamId ( streamIdParam ) ;
492+ if ( parsedStreamId === null ) {
495493 return res . status ( 400 ) . json ( { error : "Invalid streamId parameter" } ) ;
496494 }
497495
@@ -686,13 +684,12 @@ const topUpBodySchema = z.object({
686684 * Adds tokens to a running stream. Only the stream sender may call this.
687685 */
688686export const topUpStreamHandler = async ( req : Request , res : Response ) => {
689- const streamId = parseInt (
687+ const streamId = parseStreamId (
690688 Array . isArray ( req . params . streamId )
691- ? req . params . streamId [ 0 ] !
692- : ( req . params . streamId ?? "" ) ,
693- 10 ,
689+ ? req . params . streamId [ 0 ]
690+ : req . params . streamId ,
694691 ) ;
695- if ( isNaN ( streamId ) ) {
692+ if ( streamId === null ) {
696693 return res . status ( 400 ) . json ( { error : "Invalid streamId" } ) ;
697694 }
698695
@@ -769,9 +766,8 @@ export const pauseStream = async (req: Request, res: Response) => {
769766 const streamIdParam = Array . isArray ( req . params . streamId )
770767 ? req . params . streamId [ 0 ]
771768 : req . params . streamId ;
772- const parsedStreamId = Number . parseInt ( streamIdParam ?? "" , 10 ) ;
773-
774- if ( ! Number . isFinite ( parsedStreamId ) ) {
769+ const parsedStreamId = parseStreamId ( streamIdParam ) ;
770+ if ( parsedStreamId === null ) {
775771 return res . status ( 400 ) . json ( { error : "Invalid streamId parameter" } ) ;
776772 }
777773
@@ -861,9 +857,8 @@ export const resumeStream = async (req: Request, res: Response) => {
861857 const streamIdParam = Array . isArray ( req . params . streamId )
862858 ? req . params . streamId [ 0 ]
863859 : req . params . streamId ;
864- const parsedStreamId = Number . parseInt ( streamIdParam ?? "" , 10 ) ;
865-
866- if ( ! Number . isFinite ( parsedStreamId ) ) {
860+ const parsedStreamId = parseStreamId ( streamIdParam ) ;
861+ if ( parsedStreamId === null ) {
867862 return res . status ( 400 ) . json ( { error : "Invalid streamId parameter" } ) ;
868863 }
869864
0 commit comments