2017-10-21 21:10:33 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"use strict" ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								const  express  =  require ( 'express' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  router  =  express . Router ( ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:47:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  sql  =  require ( '../../services/sql' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-11-02 20:48:02 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  options  =  require ( '../../services/options' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-15 19:47:05 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  auth  =  require ( '../../services/auth' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-11-01 22:36:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  sync  =  require ( '../../services/sync' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  audit _category  =  require ( '../../services/audit_category' ) ;  
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 22:36:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								router . post ( '' ,  auth . checkApiAuth ,  async  ( req ,  res ,  next )  =>  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  treeLoadTime  =  req . body . treeLoadTime ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  currentNoteId  =  req . body . currentNoteId ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-04 21:02:56 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  currentNoteLoadTime  =  req . body . currentNoteLoadTime ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    const  browserId  =  req . get ( 'x-browser-id' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 22:36:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  noteTreeChangesCount  =  await  sql . getSingleValue ( "SELECT COUNT(*) FROM audit_log WHERE (browser_id IS NULL OR browser_id != ?) "  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        "AND date_modified >= ? AND category IN (?, ?, ?)" ,  [ browserId ,  treeLoadTime , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        audit _category . UPDATE _TITLE ,  audit _category . CHANGE _PARENT ,  audit _category . CHANGE _POSITION ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-26 23:21:31 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 22:36:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    const  currentNoteChangesCount  =  await  sql . getSingleValue ( "SELECT COUNT(*) FROM audit_log WHERE (browser_id IS NULL OR browser_id != ?) "  + 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-05 10:41:54 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        "AND date_modified >= ? AND note_id = ? AND category IN (?, ?)" ,  [ browserId ,  currentNoteLoadTime ,  currentNoteId , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        audit _category . UPDATE _TITLE ,  audit _category . UPDATE _CONTENT ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 22:36:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 23:39:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( currentNoteChangesCount  >  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        console . log ( "Current note changed!" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        console . log ( "SELECT COUNT(*) FROM audit_log WHERE (browser_id IS NULL OR browser_id != '"  +  browserId  +  "') "  + 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-05 10:41:54 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            "AND date_modified >= "  +  currentNoteLoadTime  +  " AND note_id = '"  +  currentNoteId  +  "' AND category IN ('"  +  audit _category . UPDATE _TITLE  +  "', '"  +  audit _category . UPDATE _CONTENT  +  "')" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 23:39:17 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 22:36:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    let  changesToPushCount  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( sync . isSyncSetup )  { 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-02 20:48:02 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        const  lastSyncedPush  =  await  options . getOption ( 'last_synced_push' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 22:36:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        changesToPushCount  =  await  sql . getSingleValue ( "SELECT COUNT(*) FROM sync WHERE id > ?" ,  [ lastSyncedPush ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 20:31:44 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    res . send ( { 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 22:36:26 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        'changedTree' :  noteTreeChangesCount  >  0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        'changedCurrentNote' :  currentNoteChangesCount  >  0 , 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-01 20:31:44 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        'changesToPushCount' :  changesToPushCount 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-14 23:31:44 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								module . exports  =  router ;