github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/sys/invite/impl_inviteindexprojector.go (about)

     1  /*
     2   * Copyright (c) 2023-present unTill Pro, Ltd.
     3   */
     4  
     5  package invite
     6  
     7  import (
     8  	"github.com/voedger/voedger/pkg/goutils/iterate"
     9  	"github.com/voedger/voedger/pkg/istructs"
    10  	"github.com/voedger/voedger/pkg/state"
    11  )
    12  
    13  func syncProjectorInviteIndex() istructs.Projector {
    14  	return istructs.Projector{
    15  		Name: qNameProjectorInviteIndex,
    16  		Func: inviteIndexProjector,
    17  	}
    18  }
    19  
    20  var inviteIndexProjector = func(event istructs.IPLogEvent, s istructs.IState, intents istructs.IIntents) (err error) {
    21  	return iterate.ForEachError(event.CUDs, func(rec istructs.ICUDRow) error {
    22  		if rec.QName() != qNameCDocInvite {
    23  			return nil
    24  		}
    25  
    26  		skbViewInviteIndex, err := s.KeyBuilder(state.View, qNameViewInviteIndex)
    27  		if err != nil {
    28  			return err
    29  		}
    30  		skbViewInviteIndex.PutInt32(field_Dummy, value_Dummy_One)
    31  		skbViewInviteIndex.PutString(Field_Login, event.ArgumentObject().AsString(field_Email))
    32  
    33  		svViewInviteIndex, err := intents.NewValue(skbViewInviteIndex)
    34  		if err != nil {
    35  			return err
    36  		}
    37  
    38  		svViewInviteIndex.PutRecordID(field_InviteID, rec.ID())
    39  
    40  		return nil
    41  	})
    42  }