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

     1  /*
     2   * Copyright (c) 2022-present unTill Pro, Ltd.
     3   */
     4  
     5  package payloads
     6  
     7  import (
     8  	"time"
     9  
    10  	"github.com/voedger/voedger/pkg/istructs"
    11  )
    12  
    13  func (at *implIAppTokens) IssueToken(duration time.Duration, pointerToPayload interface{}) (token string, err error) {
    14  	return at.itokens.IssueToken(at.appQName, duration, pointerToPayload)
    15  }
    16  
    17  func (at *implIAppTokens) ValidateToken(token string, pointerToPayload interface{}) (gp istructs.GenericPayload, err error) {
    18  	if gp, err = at.itokens.ValidateToken(token, pointerToPayload); err != nil {
    19  		return
    20  	}
    21  	if gp.AppQName != at.appQName {
    22  		err = ErrTokenIssuedForAnotherApp
    23  	}
    24  	return
    25  }
    26  
    27  func (atf *implIAppTokensFactory) New(app istructs.AppQName) istructs.IAppTokens {
    28  	return &implIAppTokens{
    29  		itokens:  atf.tokens,
    30  		appQName: app,
    31  	}
    32  }