@ -141,7 +141,7 @@ class RestApi { 
			
		
	
		
			
				
					            DPRINTLN ( DBG_VERBOSE ,  " onApiPostBody " ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            if ( 0  = =  index )  {  
			
		
	
		
			
				
					                if ( NULL ! =  mTmpBuf )  
			
		
	
		
			
				
					                if ( nullptr ! =  mTmpBuf )  
			
		
	
		
			
				
					                    delete [ ]  mTmpBuf ;  
			
		
	
		
			
				
					                mTmpBuf  =  new  uint8_t [ total + 1 ] ;  
			
		
	
		
			
				
					                mTmpSize  =  total ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -154,36 +154,40 @@ class RestApi { 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            DynamicJsonDocument  json ( 1000 ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            DeserializationError  err  =  deserializeJson ( json ,  reinterpret_cast < const  char * > ( mTmpBuf ) ,  mTmpSize ) ;  
			
		
	
		
			
				
					            JsonObject  obj  =  json . as < JsonObject > ( ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            AsyncJsonResponse *  response  =  new  AsyncJsonResponse ( false ,  200 ) ;  
			
		
	
		
			
				
					            JsonObject  root  =  response - > getRoot ( ) ;  
			
		
	
		
			
				
					            root [ F ( " success " ) ]  =  ( err )  ?  false  :  true ;  
			
		
	
		
			
				
					            if ( ! err )  {  
			
		
	
		
			
				
					                String  path  =  request - > url ( ) . substring ( 5 ) ;  
			
		
	
		
			
				
					                if ( path  = =  " ctrl " )  
			
		
	
		
			
				
					                    root [ F ( " success " ) ]  =  setCtrl ( obj ,  root ,  request - > client ( ) - > remoteIP ( ) . toString ( ) . c_str ( ) ) ;  
			
		
	
		
			
				
					                else  if ( path  = =  " setup " )  
			
		
	
		
			
				
					                    root [ F ( " success " ) ]  =  setSetup ( obj ,  root ,  request - > client ( ) - > remoteIP ( ) . toString ( ) . c_str ( ) ) ;  
			
		
	
		
			
				
					                else  {  
			
		
	
		
			
				
					                    root [ F ( " success " ) ]  =  false ;  
			
		
	
		
			
				
					                    root [ F ( " error " ) ]    =  F ( PATH_NOT_FOUND )  +  path ;  
			
		
	
		
			
				
					                }  
			
		
	
		
			
				
					            }  else  {  
			
		
	
		
			
				
					                switch  ( err . code ( ) )  {  
			
		
	
		
			
				
					                    case  DeserializationError : : Ok :  break ;  
			
		
	
		
			
				
					                    case  DeserializationError : : IncompleteInput :  root [ F ( " error " ) ]  =  F ( INCOMPLETE_INPUT ) ;  break ;  
			
		
	
		
			
				
					                    case  DeserializationError : : InvalidInput :     root [ F ( " error " ) ]  =  F ( INVALID_INPUT ) ;     break ;  
			
		
	
		
			
				
					                    case  DeserializationError : : NoMemory :         root [ F ( " error " ) ]  =  F ( NOT_ENOUGH_MEM ) ;    break ;  
			
		
	
		
			
				
					                    default :                                     root [ F ( " error " ) ]  =  F ( DESER_FAILED ) ;      break ;  
			
		
	
		
			
				
					            DeserializationError  err  =  deserializeJson ( json ,  reinterpret_cast < const  char * > ( mTmpBuf ) ,  mTmpSize ) ;  
			
		
	
		
			
				
					            if ( ! json . is < JsonObject > ( ) )  
			
		
	
		
			
				
					                root [ F ( " error " ) ]  =  F ( DESER_FAILED ) ;  
			
		
	
		
			
				
					            else  {  
			
		
	
		
			
				
					                JsonObject  obj  =  json . as < JsonObject > ( ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					                root [ F ( " success " ) ]  =  ( err )  ?  false  :  true ;  
			
		
	
		
			
				
					                if ( ! err )  {  
			
		
	
		
			
				
					                    String  path  =  request - > url ( ) . substring ( 5 ) ;  
			
		
	
		
			
				
					                    if ( path  = =  " ctrl " )  
			
		
	
		
			
				
					                        root [ F ( " success " ) ]  =  setCtrl ( obj ,  root ,  request - > client ( ) - > remoteIP ( ) . toString ( ) . c_str ( ) ) ;  
			
		
	
		
			
				
					                    else  if ( path  = =  " setup " )  
			
		
	
		
			
				
					                        root [ F ( " success " ) ]  =  setSetup ( obj ,  root ,  request - > client ( ) - > remoteIP ( ) . toString ( ) . c_str ( ) ) ;  
			
		
	
		
			
				
					                    else  {  
			
		
	
		
			
				
					                        root [ F ( " success " ) ]  =  false ;  
			
		
	
		
			
				
					                        root [ F ( " error " ) ]    =  F ( PATH_NOT_FOUND )  +  path ;  
			
		
	
		
			
				
					                    }  
			
		
	
		
			
				
					                }  else  {  
			
		
	
		
			
				
					                    switch  ( err . code ( ) )  {  
			
		
	
		
			
				
					                        case  DeserializationError : : Ok :  break ;  
			
		
	
		
			
				
					                        case  DeserializationError : : IncompleteInput :  root [ F ( " error " ) ]  =  F ( INCOMPLETE_INPUT ) ;  break ;  
			
		
	
		
			
				
					                        case  DeserializationError : : InvalidInput :     root [ F ( " error " ) ]  =  F ( INVALID_INPUT ) ;     break ;  
			
		
	
		
			
				
					                        case  DeserializationError : : NoMemory :         root [ F ( " error " ) ]  =  F ( NOT_ENOUGH_MEM ) ;    break ;  
			
		
	
		
			
				
					                        default :                                     root [ F ( " error " ) ]  =  F ( DESER_FAILED ) ;      break ;  
			
		
	
		
			
				
					                    }  
			
		
	
		
			
				
					                }  
			
		
	
		
			
				
					            }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					            response - > setLength ( ) ;  
			
		
	
		
			
				
					            request - > send ( response ) ;  
			
		
	
		
			
				
					            delete [ ]  mTmpBuf ;  
			
		
	
		
			
				
					            mTmpBuf  =  NULL ;  
			
		
	
		
			
				
					            mTmpBuf  =  nullptr ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        void  getNotFound ( JsonObject  obj ,  String  url )  {  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -974,7 +978,7 @@ class RestApi { 
			
		
	
		
			
				
					        uint32_t  mTimezoneOffset  =  0 ;  
			
		
	
		
			
				
					        uint32_t  mHeapFree  =  0 ,  mHeapFreeBlk  =  0 ;  
			
		
	
		
			
				
					        uint8_t  mHeapFrag  =  0 ;  
			
		
	
		
			
				
					        uint8_t  * mTmpBuf  =  NULL ;  
			
		
	
		
			
				
					        uint8_t  * mTmpBuf  =  nullptr ;  
			
		
	
		
			
				
					        uint32_t  mTmpSize  =  0 ;  
			
		
	
		
			
				
					} ;