@@ -39,8 +39,14 @@ router.post('/', authorize('server:create'), async (req, res) => {
3939 if ( ! name || ! host || ! version ) {
4040 return res . status ( 400 ) . json ( { error : 'Имя, хост и версия сервера обязательны' } ) ;
4141 }
42+
43+ const portNumber = port ? parseInt ( port , 10 ) : 25565 ;
44+ if ( isNaN ( portNumber ) || portNumber < 1 || portNumber > 65535 ) {
45+ return res . status ( 400 ) . json ( { error : 'Порт должен быть числом от 1 до 65535 (максимум 5 цифр)' } ) ;
46+ }
47+
4248 const newServer = await prisma . server . create ( {
43- data : { name, host, port : port ? parseInt ( port , 10 ) : 25565 , version } ,
49+ data : { name, host, port : portNumber , version } ,
4450 } ) ;
4551 res . status ( 201 ) . json ( newServer ) ;
4652 } catch ( error ) {
@@ -58,7 +64,13 @@ router.put('/:id', authorize('server:create'), async (req, res) => {
5864 const dataToUpdate = { } ;
5965 if ( name !== undefined ) dataToUpdate . name = name ;
6066 if ( host !== undefined ) dataToUpdate . host = host ;
61- if ( port !== undefined && port !== '' ) dataToUpdate . port = parseInt ( port , 10 ) ;
67+ if ( port !== undefined && port !== '' ) {
68+ const portNumber = parseInt ( port , 10 ) ;
69+ if ( isNaN ( portNumber ) || portNumber < 1 || portNumber > 65535 ) {
70+ return res . status ( 400 ) . json ( { error : 'Порт должен быть числом от 1 до 65535 (максимум 5 цифр)' } ) ;
71+ }
72+ dataToUpdate . port = portNumber ;
73+ }
6274 if ( version !== undefined ) dataToUpdate . version = version ;
6375
6476 Object . keys ( dataToUpdate ) . forEach ( k => { if ( dataToUpdate [ k ] === undefined ) delete dataToUpdate [ k ] ; } ) ;
0 commit comments