github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/sys/invite/impl_joinedworkspaceindexprojector.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 syncProjectorJoinedWorkspaceIndex() istructs.Projector {
    14  	return istructs.Projector{
    15  		Name: QNameProjectorJoinedWorkspaceIndex,
    16  		Func: joinedWorkspaceIndexProjector,
    17  	}
    18  }
    19  
    20  var joinedWorkspaceIndexProjector = 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() != QNameCDocJoinedWorkspace {
    23  			return nil
    24  		}
    25  
    26  		skbViewJoinedWorkspaceIndex, err := s.KeyBuilder(state.View, QNameViewJoinedWorkspaceIndex)
    27  		if err != nil {
    28  			return err
    29  		}
    30  		skbViewJoinedWorkspaceIndex.PutInt32(field_Dummy, value_Dummy_Two)
    31  		skbViewJoinedWorkspaceIndex.PutInt64(Field_InvitingWorkspaceWSID, rec.AsInt64(Field_InvitingWorkspaceWSID))
    32  
    33  		svbViewJoinedWorkspaceIndex, err := intents.NewValue(skbViewJoinedWorkspaceIndex)
    34  		if err != nil {
    35  			return err
    36  		}
    37  
    38  		svbViewJoinedWorkspaceIndex.PutRecordID(field_JoinedWorkspaceID, rec.ID())
    39  
    40  		return nil
    41  	})
    42  }