/
workspace_mapper.go
53 lines (48 loc) · 1.45 KB
/
workspace_mapper.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package mongo
import (
"context"
"time"
query "github.com/Bio-OS/bioos/internal/context/workspace/application/query/workspace"
"github.com/Bio-OS/bioos/internal/context/workspace/domain/workspace"
)
func workspacePOToWorkspaceDO(ctx context.Context, w *workspacePO) (*workspace.Workspace, error) {
factory := workspace.NewWorkspaceFactory(ctx)
param := workspace.CreateWorkspaceParam{
Name: w.Name,
Description: w.Description,
CreatedAt: w.CreateTime,
}
if w.Storage.NFS != nil {
param.Storage.NFS = &workspace.NFSStorage{MountPath: w.Storage.NFS.MountPath}
}
return factory.CreateWithWorkspaceParam(param)
}
func workspaceDOtoWorkspacePO(ctx context.Context, w *workspace.Workspace) (*workspacePO, error) {
res := &workspacePO{
ID: w.GetID(),
Name: w.GetName(),
Description: w.GetDescription(),
CreateTime: w.GetCreatedAt(),
UpdateTime: time.Now(),
}
storage := w.GetStorage()
if storage.NFS != nil {
res.Storage = workspaceStorage{
NFS: &workspaceStorageNFS{MountPath: storage.NFS.MountPath},
}
}
return res, nil
}
func workspacePOToQueryItem(ctx context.Context, w *workspacePO) (*query.WorkspaceItem, error) {
res := &query.WorkspaceItem{
ID: w.ID,
Name: w.Name,
Description: w.Description,
CreatedAt: w.CreateTime,
UpdatedAt: w.UpdateTime,
}
if w.Storage.NFS != nil {
res.Storage.NFS = &query.NFSWorkspaceStorage{MountPath: w.Storage.NFS.MountPath}
}
return res, nil
}