@ -39,6 +39,9 @@ sub journal_query_params {
 
			
		
	
		
		
			
				
					
					sub  GET  :Allow { sub  GET  :Allow {  
			
		
	
		
		
			
				
					
					    my  ( $ self ,  $ c ,  $ id )  =  @ _ ; 
    my  ( $ self ,  $ c ,  $ id )  =  @ _ ; 
 
			
		
	
		
		
			
				
					
					    $ c - > model ( 'DB' ) - > set_transaction_isolation ( 'READ COMMITTED' ) ; 
    $ c - > model ( 'DB' ) - > set_transaction_isolation ( 'READ COMMITTED' ) ; 
 
			
		
	
		
		
			
				
					
					    TX_START: 
 
			
		
	
		
		
			
				
					
					    $ c - > clear_errors ; 
 
			
		
	
		
		
			
				
					
					    try  { 
 
			
		
	
		
		
			
				
					
					        my  $ guard  =  $ c - > model ( 'DB' ) - > txn_scope_guard ; 
        my  $ guard  =  $ c - > model ( 'DB' ) - > txn_scope_guard ; 
 
			
		
	
		
		
			
				
					
					        { 
        { 
 
			
		
	
		
		
			
				
					
					            last  unless  $ self - > valid_id ( $ c ,  $ id ) ; 
            last  unless  $ self - > valid_id ( $ c ,  $ id ) ; 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -65,6 +68,15 @@ sub GET :Allow {
 
			
		
	
		
		
			
				
					
					            $ c - > response - > body ( $ response - > content ) ; 
            $ c - > response - > body ( $ response - > content ) ; 
 
			
		
	
		
		
			
				
					
					            return ; 
            return ; 
 
			
		
	
		
		
			
				
					
					        } 
        } 
 
			
		
	
		
		
			
				
					
					    }  catch ( $ e )  { 
 
			
		
	
		
		
			
				
					
					        if  ( $ self - > check_deadlock ( $ c ,  $ e ) )  { 
 
			
		
	
		
		
			
				
					
					            goto  TX_START ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        unless  ( $ c - > has_errors )  { 
 
			
		
	
		
		
			
				
					
					            $ self - > error ( $ c ,  HTTP_INTERNAL_SERVER_ERROR ,  'Internal Server Error' ,  $ e ) ; 
 
			
		
	
		
		
			
				
					
					            last ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    return ; 
    return ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -75,6 +87,9 @@ sub PUT :Allow {
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    my  $ schema  =  $ c - > model ( 'DB' ) ; 
    my  $ schema  =  $ c - > model ( 'DB' ) ; 
 
			
		
	
		
		
			
				
					
					    $ schema - > set_transaction_isolation ( 'READ COMMITTED' ) ; 
    $ schema - > set_transaction_isolation ( 'READ COMMITTED' ) ; 
 
			
		
	
		
		
			
				
					
					    TX_START: 
 
			
		
	
		
		
			
				
					
					    $ c - > clear_errors ; 
 
			
		
	
		
		
			
				
					
					    try  { 
 
			
		
	
		
		
			
				
					
					        my  $ guard  =  $ schema - > txn_scope_guard ; 
        my  $ guard  =  $ schema - > txn_scope_guard ; 
 
			
		
	
		
		
			
				
					
					        { 
        { 
 
			
		
	
		
		
			
				
					
					            my  $ preference  =  $ self - > require_preference ( $ c ) ; 
            my  $ preference  =  $ self - > require_preference ( $ c ) ; 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -108,6 +123,15 @@ sub PUT :Allow {
 
			
		
	
		
		
			
				
					
					            $ guard - > commit ; 
            $ guard - > commit ; 
 
			
		
	
		
		
			
				
					
					            $ self - > return_representation ( $ c ,  'hal'  = >  $ hal ,  'preference'  = >  $ preference  ) ; 
            $ self - > return_representation ( $ c ,  'hal'  = >  $ hal ,  'preference'  = >  $ preference  ) ; 
 
			
		
	
		
		
			
				
					
					        } 
        } 
 
			
		
	
		
		
			
				
					
					    }  catch ( $ e )  { 
 
			
		
	
		
		
			
				
					
					        if  ( $ self - > check_deadlock ( $ c ,  $ e ) )  { 
 
			
		
	
		
		
			
				
					
					            goto  TX_START ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        unless  ( $ c - > has_errors )  { 
 
			
		
	
		
		
			
				
					
					            $ self - > error ( $ c ,  HTTP_INTERNAL_SERVER_ERROR ,  'Internal Server Error' ,  $ e ) ; 
 
			
		
	
		
		
			
				
					
					            last ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    return ; 
    return ; 
 
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -118,6 +142,9 @@ sub PATCH :Allow {
 
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    my  $ schema  =  $ c - > model ( 'DB' ) ; 
    my  $ schema  =  $ c - > model ( 'DB' ) ; 
 
			
		
	
		
		
			
				
					
					    $ schema - > set_transaction_isolation ( 'READ COMMITTED' ) ; 
    $ schema - > set_transaction_isolation ( 'READ COMMITTED' ) ; 
 
			
		
	
		
		
			
				
					
					    TX_START: 
 
			
		
	
		
		
			
				
					
					    $ c - > clear_errors ; 
 
			
		
	
		
		
			
				
					
					    try  { 
 
			
		
	
		
		
			
				
					
					        my  $ guard  =  $ schema - > txn_scope_guard ; 
        my  $ guard  =  $ schema - > txn_scope_guard ; 
 
			
		
	
		
		
			
				
					
					        { 
        { 
 
			
		
	
		
		
			
				
					
					            my  $ preference  =  $ self - > require_preference ( $ c ) ; 
            my  $ preference  =  $ self - > require_preference ( $ c ) ; 
 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -159,6 +186,15 @@ sub PATCH :Allow {
 
			
		
	
		
		
			
				
					
					            $ guard - > commit ; 
            $ guard - > commit ; 
 
			
		
	
		
		
			
				
					
					            $ self - > return_representation ( $ c ,  'hal'  = >  $ hal ,  'preference'  = >  $ preference  ) ; 
            $ self - > return_representation ( $ c ,  'hal'  = >  $ hal ,  'preference'  = >  $ preference  ) ; 
 
			
		
	
		
		
			
				
					
					        } 
        } 
 
			
		
	
		
		
			
				
					
					    }  catch ( $ e )  { 
 
			
		
	
		
		
			
				
					
					        if  ( $ self - > check_deadlock ( $ c ,  $ e ) )  { 
 
			
		
	
		
		
			
				
					
					            goto  TX_START ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					        unless  ( $ c - > has_errors )  { 
 
			
		
	
		
		
			
				
					
					            $ self - > error ( $ c ,  HTTP_INTERNAL_SERVER_ERROR ,  'Internal Server Error' ,  $ e ) ; 
 
			
		
	
		
		
			
				
					
					            last ; 
 
			
		
	
		
		
			
				
					
					        } 
 
			
		
	
		
		
			
				
					
					    } 
 
			
		
	
		
		
			
				
					
					    return ; 
    return ; 
 
			
		
	
		
		
			
				
					
					} }