From ee4d92c387da45182e736d6a7499ae09f204cdf0 Mon Sep 17 00:00:00 2001 From: losyme Date: Fri, 15 Apr 2022 12:16:05 +0200 Subject: [PATCH] =?UTF-8?q?En=20cours=20de=20d=C3=A9veloppement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/storage/mongo/workflows.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/internal/storage/mongo/workflows.go b/internal/storage/mongo/workflows.go index 1b622c7..a99d210 100644 --- a/internal/storage/mongo/workflows.go +++ b/internal/storage/mongo/workflows.go @@ -12,6 +12,7 @@ import ( "forge.chapril.org/dune/jw" "forge.chapril.org/losyme/errors" "forge.chapril.org/losyme/util" + "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" ) @@ -46,7 +47,25 @@ func (ms *mongoStorage) InsertWorkflow(wf *jw.Workflow, job *jw.Job) error { } func (ms *mongoStorage) Workflow(id string, mustExist bool) (*jw.Workflow, error) { - return nil, errors.NotImplemented() + ctx, cancel := util.CtxWithTimeout(5 * time.Second) + defer cancel() + + wf := new(jw.Workflow) + + err := ms.cWorkflows().FindOne(ctx, bson.M{"_id": id}).Decode(wf) + if err == nil { + return wf, nil + } + + if err != mongo.ErrNoDocuments { + return nil, err + } + + if mustExist { + return nil, errors.New("this workflow does not exist", "id", id) /////////////////////////////////////////////// + } + + return nil, nil } func (ms *mongoStorage) UpdateWorkflow(wf *jw.Workflow, job, nextJob *jw.Job) error {