From 9d5220f9189d3483fb6b87dee0b48392adafbe39 Mon Sep 17 00:00:00 2001 From: Changyu Moon <121847433+window9u@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:02:13 +0900 Subject: [PATCH] Update error control --- server/backend/database/memory/database.go | 10 ++++++++-- server/backend/database/mongo/client.go | 12 +++++++++--- server/backend/database/project_info_test.go | 3 ++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/server/backend/database/memory/database.go b/server/backend/database/memory/database.go index 13a04789c..01218461c 100644 --- a/server/backend/database/memory/database.go +++ b/server/backend/database/memory/database.go @@ -200,7 +200,10 @@ func (d *DB) ensureDefaultProjectInfo( var info *database.ProjectInfo if raw == nil { - info = database.NewProjectInfo(database.DefaultProjectName, defaultUserID, defaultClientDeactivateThreshold) + info, err = database.NewProjectInfo(database.DefaultProjectName, defaultUserID, defaultClientDeactivateThreshold) + if err != nil { + return nil, fmt.Errorf("create project info: %w", err) + } info.ID = database.DefaultProjectID if err := txn.Insert(tblProjects, info); err != nil { return nil, fmt.Errorf("insert project: %w", err) @@ -233,7 +236,10 @@ func (d *DB) CreateProjectInfo( return nil, fmt.Errorf("%s: %w", name, database.ErrProjectAlreadyExists) } - info := database.NewProjectInfo(name, owner, clientDeactivateThreshold) + info, err := database.NewProjectInfo(name, owner, clientDeactivateThreshold) + if err != nil { + return nil, fmt.Errorf("create project info: %w", err) + } info.ID = newID() if err := txn.Insert(tblProjects, info); err != nil { return nil, fmt.Errorf("insert project: %w", err) diff --git a/server/backend/database/mongo/client.go b/server/backend/database/mongo/client.go index 16ec85b63..aa2dbbc3d 100644 --- a/server/backend/database/mongo/client.go +++ b/server/backend/database/mongo/client.go @@ -165,10 +165,13 @@ func (c *Client) ensureDefaultProjectInfo( defaultUserID types.ID, defaultClientDeactivateThreshold string, ) (*database.ProjectInfo, error) { - candidate := database.NewProjectInfo(database.DefaultProjectName, defaultUserID, defaultClientDeactivateThreshold) + candidate, err := database.NewProjectInfo(database.DefaultProjectName, defaultUserID, defaultClientDeactivateThreshold) + if err != nil { + return nil, fmt.Errorf("create project info: %w", err) + } candidate.ID = database.DefaultProjectID - _, err := c.collection(ColProjects).UpdateOne(ctx, bson.M{ + _, err = c.collection(ColProjects).UpdateOne(ctx, bson.M{ "_id": candidate.ID, }, bson.M{ "$setOnInsert": bson.M{ @@ -206,7 +209,10 @@ func (c *Client) CreateProjectInfo( owner types.ID, clientDeactivateThreshold string, ) (*database.ProjectInfo, error) { - info := database.NewProjectInfo(name, owner, clientDeactivateThreshold) + info, err := database.NewProjectInfo(name, owner, clientDeactivateThreshold) + if err != nil { + return nil, fmt.Errorf("create project info: %w", err) + } result, err := c.collection(ColProjects).InsertOne(ctx, bson.M{ "name": info.Name, "owner": owner, diff --git a/server/backend/database/project_info_test.go b/server/backend/database/project_info_test.go index 658e2bf33..18b3dd536 100644 --- a/server/backend/database/project_info_test.go +++ b/server/backend/database/project_info_test.go @@ -29,7 +29,8 @@ func TestProjectInfo(t *testing.T) { t.Run("update fields test", func(t *testing.T) { dummyOwnerID := types.ID("000000000000000000000000") clientDeactivateThreshold := "1h" - project := database.NewProjectInfo(t.Name(), dummyOwnerID, clientDeactivateThreshold) + project, err := database.NewProjectInfo(t.Name(), dummyOwnerID, clientDeactivateThreshold) + assert.NoError(t, err) testName := "testName" testURL := "testUrl"