| 
					
					
						
							
						
					
					
				 | 
				@ -6,6 +6,7 @@ import ( | 
			
		
		
	
		
			
				 | 
				 | 
					"git.aiterp.net/lucifer/new-server/models" | 
				 | 
				 | 
					"git.aiterp.net/lucifer/new-server/models" | 
			
		
		
	
		
			
				 | 
				 | 
					"github.com/gin-gonic/gin" | 
				 | 
				 | 
					"github.com/gin-gonic/gin" | 
			
		
		
	
		
			
				 | 
				 | 
					"log" | 
				 | 
				 | 
					"log" | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					"time" | 
			
		
		
	
		
			
				 | 
				 | 
				) | 
				 | 
				 | 
				) | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				func Bridges(r gin.IRoutes) { | 
				 | 
				 | 
				func Bridges(r gin.IRoutes) { | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -96,6 +97,37 @@ func Bridges(r gin.IRoutes) { | 
			
		
		
	
		
			
				 | 
				 | 
						return bridge, nil | 
				 | 
				 | 
						return bridge, nil | 
			
		
		
	
		
			
				 | 
				 | 
					})) | 
				 | 
				 | 
					})) | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					r.PUT("/:id/search", handler(func(c *gin.Context) (interface{}, error) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						var body struct { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							TimeoutMS int64 `json:"timeoutMs"` | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						err := parseBody(c, &body) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if err != nil { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							return nil, err | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if body.TimeoutMS <= 0 { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							body.TimeoutMS = 30000 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						bridge, err := config.BridgeRepository().Find(ctxOf(c), intParam(c, "id")) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if err != nil { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							return nil, err | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						driver, err := config.DriverProvider().Provide(bridge.Driver) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if err != nil { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							return nil, err | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						devices, err := driver.SearchDevices(ctxOf(c), bridge, time.Millisecond * time.Duration(body.TimeoutMS)) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						if err != nil { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
							return nil, err | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
						return devices, nil | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
					})) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
					r.DELETE("/:id", handler(func(c *gin.Context) (interface{}, error) { | 
				 | 
				 | 
					r.DELETE("/:id", handler(func(c *gin.Context) (interface{}, error) { | 
			
		
		
	
		
			
				 | 
				 | 
						bridge, err := config.BridgeRepository().Find(ctxOf(c), intParam(c, "id")) | 
				 | 
				 | 
						bridge, err := config.BridgeRepository().Find(ctxOf(c), intParam(c, "id")) | 
			
		
		
	
		
			
				 | 
				 | 
						if err != nil { | 
				 | 
				 | 
						if err != nil { | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
					
				 | 
				
  |