Skip to content

Commit 0d11916

Browse files
committed

File tree

4 files changed

+36
-56
lines changed

4 files changed

+36
-56
lines changed

polycode/cli.go

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,9 @@ func runCliCommand(args []string) error {
2020
}
2121

2222
func getAppInfo(filePath string) error {
23-
var services []ServiceDescription
24-
for srvName, srv := range serviceMap {
25-
serviceData := ServiceDescription{
26-
Name: srvName,
27-
Tasks: make([]MethodDescription, 0),
28-
}
29-
30-
res, err := srv.ExecuteService(nil, "@definition", nil)
31-
if err != nil {
32-
return err
33-
}
34-
35-
taskList := res.([]string)
36-
for _, taskName := range taskList {
37-
description, err := GetMethodDescription(srv, taskName)
38-
if err != nil {
39-
return err
40-
}
41-
42-
serviceData.Tasks = append(serviceData.Tasks, description)
43-
}
44-
45-
services = append(services, serviceData)
23+
services, err := ExtractServiceDescription()
24+
if err != nil {
25+
return err
4626
}
4727

4828
req := StartAppRequest{

polycode/model.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ import (
44
"time"
55
)
66

7-
type DescribeMethodRequest struct {
8-
Name string `json:"name"`
9-
}
10-
117
type BackoffStrategy struct {
128
InitialInterval time.Duration `json:"initialInterval"`
139
MaxInterval time.Duration `json:"maxInterval"`

polycode/runtime.go

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ type Service interface {
2222
GetDescription(method string) (string, error)
2323
GetInputType(method string) (any, error)
2424
GetOutputType(method string) (any, error)
25+
IsWorkflow(method string) bool
2526
ExecuteService(ctx ServiceContext, method string, input any) (any, error)
2627
ExecuteWorkflow(ctx WorkflowContext, method string, input any) (any, error)
27-
IsWorkflow(method string) bool
2828
}
2929

3030
func RegisterService(service Service) {
@@ -103,12 +103,9 @@ func loadAppConfig() AppConfig {
103103
}
104104

105105
func sendStartApp() {
106-
var services []ServiceDescription
107-
for name := range serviceMap {
108-
services = append(services, ServiceDescription{
109-
Name: name,
110-
// ToDo: Add task info
111-
})
106+
services, err := ExtractServiceDescription()
107+
if err != nil {
108+
log.Fatalf("client: %s\n", err.Error())
112109
}
113110

114111
req := StartAppRequest{
@@ -118,7 +115,6 @@ func sendStartApp() {
118115
Routes: loadRoutes(),
119116
}
120117

121-
var err error
122118
for {
123119
err = serviceClient.StartApp(req)
124120
if err == nil {
@@ -171,27 +167,6 @@ func runService(ctx context.Context, taskLogger Logger, event ServiceStartEvent)
171167
return ErrorToServiceComplete(err2)
172168
}
173169

174-
if event.Method == "@DescribeMethod" {
175-
inputObj := DescribeMethodRequest{}
176-
err = ConvertType(event.Input, &inputObj)
177-
if err != nil {
178-
err2 := ErrServiceExecError.Wrap(err)
179-
taskLogger.Error().Msg(err2.Error())
180-
return ErrorToServiceComplete(err2)
181-
}
182-
183-
fmt.Printf("service %s describing method %s", event.Service, inputObj.Name)
184-
description, err := GetMethodDescription(service, inputObj.Name)
185-
if err != nil {
186-
err2 := ErrServiceExecError.Wrap(err)
187-
taskLogger.Error().Msg(err2.Error())
188-
return ErrorToServiceComplete(err2)
189-
}
190-
191-
evt = ValueToServiceComplete(description)
192-
return
193-
}
194-
195170
meta := ServiceMeta{
196171
IsWorkflow: service.IsWorkflow(event.Method),
197172
}

polycode/util.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,3 +142,32 @@ func GetMethodDescription(service Service, method string) (MethodDescription, er
142142
Input: inputSchema,
143143
}, nil
144144
}
145+
146+
func ExtractServiceDescription() ([]ServiceDescription, error) {
147+
var services []ServiceDescription
148+
for srvName, srv := range serviceMap {
149+
serviceData := ServiceDescription{
150+
Name: srvName,
151+
Tasks: make([]MethodDescription, 0),
152+
}
153+
154+
res, err := srv.ExecuteService(nil, "@definition", nil)
155+
if err != nil {
156+
return nil, err
157+
}
158+
159+
taskList := res.([]string)
160+
for _, taskName := range taskList {
161+
description, err := GetMethodDescription(srv, taskName)
162+
if err != nil {
163+
return nil, err
164+
}
165+
166+
serviceData.Tasks = append(serviceData.Tasks, description)
167+
}
168+
169+
services = append(services, serviceData)
170+
}
171+
172+
return services, nil
173+
}

0 commit comments

Comments
 (0)