22 lines
		
	
	
		
			701 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			701 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package utils
 | 
						|
 | 
						|
import (
 | 
						|
	"errors"
 | 
						|
	"strings"
 | 
						|
 | 
						|
	"cloud.o-forge.io/core/oc-lib/tools"
 | 
						|
)
 | 
						|
 | 
						|
func ExtractMethod(relation string, internal bool) (tools.METHOD, error) {
 | 
						|
	meths := []tools.METHOD{tools.GET, tools.PUT, tools.POST, tools.DELETE}
 | 
						|
	if internal {
 | 
						|
		meths = append(meths, []tools.METHOD{tools.STRICT_INTERNAL_GET, tools.STRICT_INTERNAL_POST, tools.STRICT_INTERNAL_POST, tools.STRICT_INTERNAL_DELETE}...)
 | 
						|
	}
 | 
						|
	for _, method := range meths {
 | 
						|
		if (!internal && strings.Contains(strings.ToUpper(relation), strings.ToUpper(method.String()))) || (internal && strings.ToUpper(relation) == strings.ToUpper(method.String())) {
 | 
						|
			return method, nil
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return tools.GET, errors.New("method not found")
 | 
						|
}
 |