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")
 | |
| }
 |