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 }