/
plugin.go
49 lines (40 loc) · 1.59 KB
/
plugin.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
package v1alpha1
import (
"context"
"github.com/GptPluginHub/hub/pkg/application"
"github.com/GptPluginHub/hub/pkg/config"
"google.golang.org/protobuf/types/known/emptypb"
pluginv1alpha1 "hub.io/api/plugin/v1alpha1"
)
type PluginHandler struct {
*pluginv1alpha1.UnimplementedPluginServiceServer
PluginAppInterface application.PluginAppInterface
PluginScoreAppInterface application.PluginScoreAppInterface
}
func (p *PluginHandler) CreatePlugin(ctx context.Context, request *pluginv1alpha1.CreatePluginRequest) (*emptypb.Empty, error) {
if err := request.ValidateAll(); err != nil {
return nil, err
}
err := p.PluginAppInterface.CreatePlugin(ctx, request)
return &emptypb.Empty{}, err
}
func (p *PluginHandler) ListPlugins(ctx context.Context, req *pluginv1alpha1.ListPluginRequest) (*pluginv1alpha1.ListPluginResponse, error) {
if err := req.ValidateAll(); err != nil {
return nil, err
}
plugins, err := p.PluginAppInterface.ListPlugins(ctx, req)
return plugins, err
}
func (p *PluginHandler) CreatePluginScore(ctx context.Context, req *pluginv1alpha1.CreatePluginScoreRequest) (*emptypb.Empty, error) {
if err := req.ValidateAll(); err != nil {
return nil, err
}
err := p.PluginScoreAppInterface.CreatePluginScore(ctx, req)
return &emptypb.Empty{}, err
}
var _ pluginv1alpha1.PluginServiceServer = new(PluginHandler)
func NewPluginHandler(cfg config.Config) pluginv1alpha1.PluginServiceServer {
app := application.NewPluginApp(cfg)
pluginScoreApp := application.NewPluginScoreAppInterface(cfg)
return &PluginHandler{PluginAppInterface: app, PluginScoreAppInterface: pluginScoreApp}
}