mirror of
				https://github.com/avatao-content/test-tutorial-framework
				synced 2025-11-04 02:02:55 +00:00 
			
		
		
		
	Fix webservice
This commit is contained in:
		
							
								
								
									
										29
									
								
								solvable/src/webservice/tfw_uplink.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								solvable/src/webservice/tfw_uplink.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					from os import mkfifo, remove
 | 
				
			||||||
 | 
					from os.path import join
 | 
				
			||||||
 | 
					from contextlib import suppress
 | 
				
			||||||
 | 
					from json import dumps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from pipe_io import PipeWriter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TFW_PIPES_DIR = '/run/tfw'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TFWUplink:
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        self._send_pipe = join(TFW_PIPES_DIR, 'webservice_send')
 | 
				
			||||||
 | 
					        with suppress(FileExistsError):
 | 
				
			||||||
 | 
					            mkfifo(self._send_pipe)
 | 
				
			||||||
 | 
					        self._pipe_writer = PipeWriter(self._send_pipe)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def send_message(self, message):
 | 
				
			||||||
 | 
					        self._pipe_writer.send_message(dumps(message).encode())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __enter__(self):
 | 
				
			||||||
 | 
					        return self
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __exit__(self, type_, value, traceback):
 | 
				
			||||||
 | 
					        self.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def close(self):
 | 
				
			||||||
 | 
					        self._pipe_writer.close()
 | 
				
			||||||
 | 
					        remove(self._send_pipe)
 | 
				
			||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
from pipe_io import PipeWriter
 | 
					from tfw_uplink import TFWUplink
 | 
				
			||||||
from crypto import PasswordHasher
 | 
					from crypto import PasswordHasher
 | 
				
			||||||
from model import User
 | 
					from model import User
 | 
				
			||||||
from errors import InvalidCredentialsError, UserExistsError
 | 
					from errors import InvalidCredentialsError, UserExistsError
 | 
				
			||||||
@@ -9,8 +9,14 @@ class UserOps:
 | 
				
			|||||||
        self.username = username
 | 
					        self.username = username
 | 
				
			||||||
        self.password = password
 | 
					        self.password = password
 | 
				
			||||||
        self.db_session = db_session
 | 
					        self.db_session = db_session
 | 
				
			||||||
        self.pipe = PipeWriter('/tmp/tfw_bot_send')
 | 
					        self._uplink = TFWUplink()
 | 
				
			||||||
        self.log = lambda message: self.pipe.send_message(message.encode()+b"\n")
 | 
					
 | 
				
			||||||
 | 
					    def log(self, message):
 | 
				
			||||||
 | 
					        self._uplink.send_message({
 | 
				
			||||||
 | 
					            'key': 'message.send',
 | 
				
			||||||
 | 
					            'originator': 'webservice',
 | 
				
			||||||
 | 
					            'message': message
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def authenticate(self):
 | 
					    def authenticate(self):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user