2021-05-09 14:06:06 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								package  instance  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								import  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"net/http" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-07 13:31:39 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"github.com/sirupsen/logrus" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									"github.com/spf13/viper" 
							 
						 
					
						
							
								
									
										
										
										
											2021-12-11 17:50:00 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/api" 
							 
						 
					
						
							
								
									
										
										
										
											2021-12-07 13:31:39 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									"github.com/superseriousbusiness/gotosocial/internal/config" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-05-09 14:06:06 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									"github.com/gin-gonic/gin" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-08-02 19:06:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								// InstanceInformationGETHandler swagger:operation GET /api/v1/instance instanceGet  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// View instance information.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// This is mostly provided for Mastodon application compatibility, since many apps that work with Mastodon use `/api/v1/instance` to inform their connection parameters.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// However, it can also be used by other instances for gathering instance information and representing instances in some UI or other.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// ---  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// tags:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// - instance  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// produces:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// - application/json  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// responses:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//   '200':  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//     description: "Instance information."  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//     schema:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//       "$ref": "#/definitions/instance"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//   '500':  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								//      description: internal error  
						 
					
						
							
								
									
										
										
										
											2021-05-09 14:06:06 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								func  ( m  * Module )  InstanceInformationGETHandler ( c  * gin . Context )  {  
						 
					
						
							
								
									
										
										
										
											2021-10-11 05:37:33 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									l  :=  logrus . WithField ( "func" ,  "InstanceInformationGETHandler" ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-05-09 14:06:06 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-11 17:50:00 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									if  _ ,  err  :=  api . NegotiateAccept ( c ,  api . JSONAcceptHeaders ... ) ;  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										c . JSON ( http . StatusNotAcceptable ,  gin . H { "error" :  err . Error ( ) } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-07 13:31:39 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									host  :=  viper . GetString ( config . Keys . Host ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									instance ,  err  :=  m . processor . InstanceGet ( c . Request . Context ( ) ,  host ) 
							 
						 
					
						
							
								
									
										
										
										
											2021-05-09 14:06:06 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									if  err  !=  nil  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										l . Debugf ( "error getting instance from processor: %s" ,  err ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										c . JSON ( http . StatusInternalServerError ,  gin . H { "error" :  "internal server error" } ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									c . JSON ( http . StatusOK ,  instance ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}