コード例 #1
0
ファイル: security.go プロジェクト: Jumpscale/go-raml
func newPythonOauth2Middleware(ss raml.DefinitionChoice) (middleware, error) {
	quotedScopes, err := security.GetQuotedScopes(ss)
	if err != nil {
		return middleware{}, err
	}

	importPath, name := pythonOauth2libImportPath(ss.Name)
	return middleware{
		ImportPath: importPath,
		Name:       name,
		Args:       strings.Join(quotedScopes, ", "),
	}, nil
}
コード例 #2
0
ファイル: method.go プロジェクト: Jumpscale/go-raml
// get oauth2 middleware handler from a security scheme
func getOauth2MwrHandler(ss raml.DefinitionChoice) (string, error) {
	// construct security scopes
	quotedScopes, err := security.GetQuotedScopes(ss)
	if err != nil {
		return "", err
	}
	scopesArgs := strings.Join(quotedScopes, ", ")

	// middleware name
	// need to handle case where it reside in different package
	var packageName string
	name := ss.Name

	if splitted := strings.Split(name, "."); len(splitted) == 2 {
		packageName = splitted[0]
		name = splitted[1]
	}
	mwr := fmt.Sprintf(`NewOauth2%vMiddleware([]string{%v}).Handler`, name, scopesArgs)
	if packageName != "" {
		mwr = packageName + "." + mwr
	}
	return mwr, nil
}