mirror of
				https://github.com/gravitl/netmaker.git
				synced 2025-11-01 04:32:40 +08:00 
			
		
		
		
	 b78cc0a8a1
			
		
	
	b78cc0a8a1
	
	
	
		
			
			* api to to get host relayed from client * add auto relay to api host * add peer nat type * set pro field on signal * rm net check on relay me handler * return success response * re-establish failover logic * set failOver ctx * failOver with peer pub key * failovered peer updates * failover handlers, reset failovered peer on deletion * rm unused funcs * initialize failover handler on EE * ignore failover node on signal * failover changes * set host id on signal * extend signal model to include node ids * add backwards compatibility * add failover as node api * set json response on failover handers * add failover field to api node * fix signal data check * initialize failover peer map * reset failovered status when relayed or deleted * add failover info to api node * reset network failover * only proceed furtuer if failover exists in the network * set failOver node defaults * cannot set failover node as relayed * debug log * debug log * debug changes * debug changes * debug changes * revert debug changes * don't add peers to idmap when removed * reset failed Over * fix static checks * rm debug log * add check for linux host
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package logic
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"net/http"
 | |
| 
 | |
| 	"github.com/gravitl/netmaker/logger"
 | |
| 	"github.com/gravitl/netmaker/models"
 | |
| )
 | |
| 
 | |
| // FormatError - takes ErrorResponse and uses correct code
 | |
| func FormatError(err error, errType string) models.ErrorResponse {
 | |
| 
 | |
| 	var status = http.StatusInternalServerError
 | |
| 	switch errType {
 | |
| 	case "internal":
 | |
| 		status = http.StatusInternalServerError
 | |
| 	case "badrequest":
 | |
| 		status = http.StatusBadRequest
 | |
| 	case "notfound":
 | |
| 		status = http.StatusNotFound
 | |
| 	case "unauthorized":
 | |
| 		status = http.StatusUnauthorized
 | |
| 	case "forbidden":
 | |
| 		status = http.StatusForbidden
 | |
| 	default:
 | |
| 		status = http.StatusInternalServerError
 | |
| 	}
 | |
| 
 | |
| 	var response = models.ErrorResponse{
 | |
| 		Message: err.Error(),
 | |
| 		Code:    status,
 | |
| 	}
 | |
| 	return response
 | |
| }
 | |
| 
 | |
| // ReturnSuccessResponse - processes message and adds header
 | |
| func ReturnSuccessResponse(response http.ResponseWriter, request *http.Request, message string) {
 | |
| 	var httpResponse models.SuccessResponse
 | |
| 	httpResponse.Code = http.StatusOK
 | |
| 	httpResponse.Message = message
 | |
| 	response.Header().Set("Content-Type", "application/json")
 | |
| 	response.WriteHeader(http.StatusOK)
 | |
| 	json.NewEncoder(response).Encode(httpResponse)
 | |
| }
 | |
| 
 | |
| // ReturnSuccessResponseWithJson - processes message and adds header
 | |
| func ReturnSuccessResponseWithJson(response http.ResponseWriter, request *http.Request, res interface{}, message string) {
 | |
| 	var httpResponse models.SuccessResponse
 | |
| 	httpResponse.Code = http.StatusOK
 | |
| 	httpResponse.Response = res
 | |
| 	httpResponse.Message = message
 | |
| 	response.Header().Set("Content-Type", "application/json")
 | |
| 	response.WriteHeader(http.StatusOK)
 | |
| 	json.NewEncoder(response).Encode(httpResponse)
 | |
| }
 | |
| 
 | |
| // ReturnErrorResponse - processes error and adds header
 | |
| func ReturnErrorResponse(response http.ResponseWriter, request *http.Request, errorMessage models.ErrorResponse) {
 | |
| 	httpResponse := &models.ErrorResponse{Code: errorMessage.Code, Message: errorMessage.Message}
 | |
| 	jsonResponse, err := json.Marshal(httpResponse)
 | |
| 	if err != nil {
 | |
| 		panic(err)
 | |
| 	}
 | |
| 	logger.Log(1, "processed request error:", errorMessage.Message)
 | |
| 	response.Header().Set("Content-Type", "application/json")
 | |
| 	response.WriteHeader(errorMessage.Code)
 | |
| 	response.Write(jsonResponse)
 | |
| }
 |