/
component.go
41 lines (38 loc) · 1.41 KB
/
component.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
package service
import (
"context"
"github.com/tang95/x-port/internal/domain"
)
type ComponentRepo interface {
Get(ctx context.Context, id string) (*domain.Component, error)
Create(ctx context.Context, component *domain.Component) (string, error)
Update(ctx context.Context, id string, component *domain.Component) error
Query(ctx context.Context, filter *domain.ComponentFilter, page *domain.PageQuery, sort []*domain.SortQuery) ([]*domain.Component, int32, error)
QueryDependency(ctx context.Context, id string, filter *domain.ComponentFilter, page *domain.PageQuery, sort []*domain.SortQuery) ([]*domain.Component, int32, error)
QueryDependents(ctx context.Context, id string, filter *domain.ComponentFilter, page *domain.PageQuery, sort []*domain.SortQuery) ([]*domain.Component, int32, error)
QueryTags(ctx context.Context) ([]string, error)
}
func (service *Service) CreateComponent(ctx context.Context) (string, error) {
id, err := service.componentRepo.Create(ctx, &domain.Component{
Name: "hello",
Description: "",
Lifecycle: domain.Alpha,
Type: domain.Service,
OwnerID: "test",
Tags: []string{"service", "java", "springboot"},
Annotations: map[string]interface{}{
"hello": "world",
"test": map[string]interface{}{
"test": "test",
"ccc": map[string]interface{}{
"xxx": "cccc",
},
},
},
},
)
if err != nil {
return "", err
}
return id, nil
}