From 091cbb9e7fab2759afbf9c1a38f9100bf469edd5 Mon Sep 17 00:00:00 2001 From: mr Date: Tue, 27 Aug 2024 10:07:13 +0200 Subject: [PATCH] simplify call to peer --- models/workspace/shared/shared_workspace.go | 1 + .../shared/shared_workspace_mongo_accessor.go | 15 +++++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/models/workspace/shared/shared_workspace.go b/models/workspace/shared/shared_workspace.go index 4b4a6e0..d8604d1 100644 --- a/models/workspace/shared/shared_workspace.go +++ b/models/workspace/shared/shared_workspace.go @@ -14,6 +14,7 @@ import ( type SharedWorkspace struct { utils.AbstractObject + IsSent bool `json:"is_sent" bson:"-"` CreatorID string `json:"peer_id,omitempty" bson:"peer_id,omitempty" validate:"required"` Version string `json:"version,omitempty" bson:"version,omitempty"` Description string `json:"description,omitempty" bson:"description,omitempty" validate:"required"` diff --git a/models/workspace/shared/shared_workspace_mongo_accessor.go b/models/workspace/shared/shared_workspace_mongo_accessor.go index 5c63694..6736fe2 100644 --- a/models/workspace/shared/shared_workspace_mongo_accessor.go +++ b/models/workspace/shared/shared_workspace_mongo_accessor.go @@ -152,11 +152,13 @@ func (wfa *sharedWorkspaceMongoAccessor) sendToPeer(shared *SharedWorkspace) { if wfa.Caller == nil || wfa.Caller.URLS == nil || wfa.Caller.URLS[utils.SHARED_WORKSPACE.String()] == nil { return } + paccess := (&peer.Peer{}) for _, v := range shared.Peers { - if (&peer.Peer{AbstractObject: utils.AbstractObject{UUID: v}}).IsMySelf() { + if (&peer.Peer{AbstractObject: utils.AbstractObject{UUID: v}}).IsMySelf() || shared.IsSent { continue } + shared.IsSent = true b, err := paccess.LaunchPeerExecution(v, v, utils.SHARED_WORKSPACE, tools.POST, shared.Serialize(), wfa.Caller) if err != nil && b == nil { wfa.Logger.Error().Msg("Could not send to peer " + v + ". Error: " + err.Error()) @@ -165,11 +167,12 @@ func (wfa *sharedWorkspaceMongoAccessor) sendToPeer(shared *SharedWorkspace) { } func (wfa *sharedWorkspaceMongoAccessor) UpdateOne(set utils.DBObject, id string) (utils.DBObject, int, error) { - wfa.deleteToPeer(set.(*SharedWorkspace)) - wfa.sharedWorkflow(set.(*SharedWorkspace), id) - wfa.sharedWorkspace(set.(*SharedWorkspace), id) - wfa.sendToPeer(set.(*SharedWorkspace)) - return wfa.GenericUpdateOne(set.(*SharedWorkspace), id, wfa, &SharedWorkspace{}) + res, code, err := wfa.GenericUpdateOne(set.(*SharedWorkspace), id, wfa, &SharedWorkspace{}) + wfa.deleteToPeer(res.(*SharedWorkspace)) + wfa.sharedWorkflow(res.(*SharedWorkspace), id) + wfa.sharedWorkspace(res.(*SharedWorkspace), id) + wfa.sendToPeer(res.(*SharedWorkspace)) + return res, code, err } func (wfa *sharedWorkspaceMongoAccessor) StoreOne(data utils.DBObject) (utils.DBObject, int, error) {