| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | from flask_login import current_user | 
					
						
							|  |  |  | from werkzeug.exceptions import NotFound | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from controllers.console.app.error import AppUnavailableError | 
					
						
							|  |  |  | from extensions.ext_database import db | 
					
						
							|  |  |  | from models.model import App | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def _get_app(app_id, mode=None): | 
					
						
							|  |  |  |     app = db.session.query(App).filter( | 
					
						
							|  |  |  |         App.id == app_id, | 
					
						
							|  |  |  |         App.tenant_id == current_user.current_tenant_id, | 
					
						
							|  |  |  |         App.status == 'normal' | 
					
						
							|  |  |  |     ).first() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if not app: | 
					
						
							|  |  |  |         raise NotFound("App not found") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if mode and app.mode != mode: | 
					
						
							| 
									
										
										
										
											2023-05-22 17:39:28 +08:00
										 |  |  |         raise NotFound("The {} app not found".format(mode)) | 
					
						
							| 
									
										
										
										
											2023-05-15 08:51:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     return app |