github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/itokens-payloads/utils.go (about)

     1  /*
     2   * Copyright (c) 2020-present unTill Pro, Ltd.
     3   * @author Denis Gribanov
     4   */
     5  
     6  package payloads
     7  
     8  import (
     9  	"fmt"
    10  	"net/http"
    11  
    12  	"github.com/voedger/voedger/pkg/istructs"
    13  	itokens "github.com/voedger/voedger/pkg/itokens"
    14  	coreutils "github.com/voedger/voedger/pkg/utils"
    15  )
    16  
    17  func GetSystemPrincipalToken(itokens itokens.ITokens, appQName istructs.AppQName) (string, error) {
    18  	systemPrincipalToken, err := itokens.IssueToken(appQName, DefaultSystemPrincipalDuration, &systemPrincipalPayload)
    19  	if err != nil {
    20  		return "", fmt.Errorf("failed to issue system principal token: %w", err)
    21  	}
    22  	return systemPrincipalToken, nil
    23  }
    24  
    25  func GetSystemPrincipalTokenApp(appTokens istructs.IAppTokens) (string, error) {
    26  	systemPrincipalToken, err := appTokens.IssueToken(DefaultSystemPrincipalDuration, &systemPrincipalPayload)
    27  	if err != nil {
    28  		return "", fmt.Errorf("failed to issue system principal token: %w", err)
    29  	}
    30  	return systemPrincipalToken, nil
    31  }
    32  
    33  func GetPayloadRegistry(itokens itokens.ITokens, token string, payload interface{}) (gp istructs.GenericPayload, err error) {
    34  	if gp, err = itokens.ValidateToken(token, payload); err != nil {
    35  		err = coreutils.NewHTTPError(http.StatusUnauthorized, err)
    36  	}
    37  	return
    38  }
    39  
    40  func GetPrincipalPayload(appTokens istructs.IAppTokens, principalToken string) (principalPayload PrincipalPayload, err error) {
    41  	_, err = GetPayload(appTokens, principalToken, &principalPayload)
    42  	return
    43  }
    44  
    45  // nolint (gp is never used)
    46  func GetPayload(appTokens istructs.IAppTokens, token string, payload interface{}) (gp istructs.GenericPayload, err error) {
    47  	if gp, err = appTokens.ValidateToken(token, payload); err != nil {
    48  		err = coreutils.NewHTTPError(http.StatusUnauthorized, err)
    49  	}
    50  	return
    51  }