From 956dd9cb6f0dd2023a47391080f586a6fcc6c116 Mon Sep 17 00:00:00 2001 From: losyme Date: Thu, 14 Apr 2022 16:09:34 +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/jobs.go | 35 +++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/internal/storage/mongo/jobs.go b/internal/storage/mongo/jobs.go index 41fb1c4..fbc0a3a 100644 --- a/internal/storage/mongo/jobs.go +++ b/internal/storage/mongo/jobs.go @@ -7,6 +7,7 @@ package mongo import ( + "context" "time" "forge.chapril.org/dune/jw" @@ -20,21 +21,7 @@ func (ms *mongoStorage) ValidateJob(_ *jw.Job) error { return nil } -func (ms *mongoStorage) InsertJob(job *jw.Job) (bool, error) { - col := ms.Collection("jobs") - - ctx, cancel := util.CtxWithTimeout(5 * time.Second) - defer cancel() - - if job.Category == nil { - _, err := col.InsertOne(ctx, job) - if err != nil { - return false, err - } - - return true, nil - } - +func (ms *mongoStorage) txInsertJob(ctx context.Context, job *jw.Job, col *mongo.Collection) (bool, error) { session, err := ms.client.StartSession() if err != nil { return false, err @@ -75,6 +62,24 @@ func (ms *mongoStorage) InsertJob(job *jw.Job) (bool, error) { return result.(bool), err } +func (ms *mongoStorage) InsertJob(job *jw.Job) (bool, error) { + col := ms.Collection("jobs") + + ctx, cancel := util.CtxWithTimeout(5 * time.Second) + defer cancel() + + if job.Category == nil { + _, err := col.InsertOne(ctx, job) + if err != nil { + return false, err + } + + return true, nil + } + + return ms.txInsertJob(ctx, job, col) +} + func (ms *mongoStorage) UpdateJob(job *jw.Job) error { return nil }