From cb9e141a97713889ce6bcc0ba04411540c6e3f04 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Mon, 5 Nov 2018 15:46:23 -0800 Subject: [PATCH 01/87] Initial commit - Swagger feature --- swagger/activity.go | 123 ++++++++++++++++++++++++++++ swagger/examples/swagger/README.md | 0 swagger/examples/swagger/flogo.json | 111 +++++++++++++++++++++++++ swagger/metadata.go | 32 ++++++++ swagger/swagger.go | 75 +++++++++++++++++ 5 files changed, 341 insertions(+) create mode 100644 swagger/activity.go create mode 100644 swagger/examples/swagger/README.md create mode 100644 swagger/examples/swagger/flogo.json create mode 100644 swagger/metadata.go create mode 100644 swagger/swagger.go diff --git a/swagger/activity.go b/swagger/activity.go new file mode 100644 index 00000000..0973c914 --- /dev/null +++ b/swagger/activity.go @@ -0,0 +1,123 @@ +package swagger + +import( + "fmt" + "bytes" + "context" + "encoding/json" + "io" + "net/http" + "net/url" + "strconv" + "strings" + + "github.com/project-flogo/core/data/metadata" + "github.com/project-flogo/core/support/log" + "github.com/project-flogo/core/trigger" +) +var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) +const DefaultPort = "9096" + +func init() { + trigger.Register(&Trigger{}, &Factory{}) +} + +type Factory struct { +} + +// Metadata implements trigger.Factory.Metadata +func (*Factory) Metadata() *trigger.Metadata { + return triggerMd +} + + +// New implements trigger.Factory.New +func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { + s := &Settings{} + err := metadata.MapToStruct(config.Settings, s, true) + if err != nil { + return nil, err + } + fmt.Println("config is:",config) + port := strconv.Itoa(config.Settings["port"].(int)) + if len(port) == 0 { + port = DefaultPort + } + + mux := http.NewServeMux() + server := &http.Server{ + Addr: ":" + port, + Handler: mux, + } + trigger := &Trigger{ + metadata: f.Metadata(), + config: config, + response: string("Hello this is test for swagger"), + Server: server, + } + mux.HandleFunc("/swagger", trigger.SwaggerHandler) + //response := Swagger("hostname",config) + + return trigger, nil +} + +func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { + io.WriteString(w, "{\"response\":\"Ping successful\"}\n") +} + +// Start implements util.Managed.Start +func (t *Trigger) Start() error { + go func() { + if err := t.Server.ListenAndServe(); err != http.ErrServerClosed { + fmt.Errorf("Ping service err:", err) + } + }() + return nil +} + +// Stop implements util.Managed.Stop +func (t *Trigger) Stop() error { + if err := t.Server.Shutdown(nil); err != nil { + fmt.Errorf("[mashling-ping-service] Ping service error when stopping:", err) + return err + } + return nil +} + +/*func Swagger(hostname string, config *trigger.Config) string { + if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { + fmt.Print + } + +}*/ + + +/*if trigger.Ref == "github.com/TIBCOSoftware/flogo-contrib/trigger/rest" { +for _, handler := range trigger.Handlers { +var endpoint swagger.Endpoint +endpoint.Name = trigger.Name +endpoint.Method = handler.Settings["method"].(string) +endpoint.Path = handler.Settings["path"].(string) +endpoint.Description = trigger.Description +var beginDelim, endDelim rune +switch trigger.Type { +case "github.com/TIBCOSoftware/flogo-contrib/trigger/rest": +beginDelim = ':' +endDelim = '/' +case "github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger": +beginDelim = '{' +endDelim = '}' +default: +beginDelim = '{' +endDelim = '}' +} +endpoint.BeginDelim = beginDelim +endpoint.EndDelim = endDelim +endpoints = append(endpoints, endpoint) +} +}*/ + + +func (t *Trigger) Initialize(ctx trigger.InitContext) error { + return nil +} \ No newline at end of file diff --git a/swagger/examples/swagger/README.md b/swagger/examples/swagger/README.md new file mode 100644 index 00000000..e69de29b diff --git a/swagger/examples/swagger/flogo.json b/swagger/examples/swagger/flogo.json new file mode 100644 index 00000000..d06a43e2 --- /dev/null +++ b/swagger/examples/swagger/flogo.json @@ -0,0 +1,111 @@ +{ + "name": "swagger", + "type": "flogo:app", + "version": "1.0.0", + "description": "This is a simple proxy.", + "properties": null, + "channels": null, + "triggers": [ + { + "name": "flogo-rest", + "id": "MyProxy", + "ref": "github.com/project-flogo/core/swagger", + "description": "Simple REST Trigger", + "settings": { + "port": "9096" + }, + "handlers": [ + { + "settings": { + "method": "GET", + "path": "/pets" + }, + "actions": [ + { + "id": "microgateway:jwt" + } + ] + } + ] + } + ], + "resources": [ + { + "id": "microgateway:jwt", + "compressed": false, + "data": { + "name": "Pets", + "steps": [ + { + "service": "jwtService", + "input": { + "token": "=$.payload.headers.Authorization" + } + }, + { + "service": "PetStorePets", + "input": { + "pathParams.petId": "=$.jwtService.outputs.token.claims.id" + } + } + ], + "responses": [ + { + "if": "$.jwtService.outputs.valid == false", + "error": true, + "output": { + "code": 401, + "data": { + "error": "=$.PetStorePets.outputs" + } + } + }, + { + "if": "$.jwtService.outputs.valid == true", + "error": false, + "output": { + "code": 200, + "data": { + "error": "JWT token is valid", + "pet": "=$.PetStorePets.outputs.result" + } + } + } + ], + "services": [ + { + "name": "jwtService", + "description": "Validating JWT token to access Petstore service", + "ref": "github.com/project-flogo/microgateway/activity/jwt", + "settings": { + "signingMethod": "HMAC", + "key": "qwertyuiopasdfghjklzxcvbnm789101", + "aud": "www.mashling.io", + "iss": "Mashling", + "sub": "tempuser@mail.com" + } + }, + { + "name": "PetStorePets", + "description": "Get pets by ID from the petstore", + "ref": "github.com/project-flogo/contrib/activity/rest", + "settings": { + "uri": "https://petstore.swagger.io/v2/pet/:petId", + "method": "GET" + } + } + ] + } + } + ], + "actions": [ + { + "ref": "github.com/project-flogo/microgateway", + "settings": { + "uri": "microgateway:jwt" + }, + "id": "microgateway:jwt", + "metadata": null + } + ] +} \ No newline at end of file diff --git a/swagger/metadata.go b/swagger/metadata.go new file mode 100644 index 00000000..1779e1c4 --- /dev/null +++ b/swagger/metadata.go @@ -0,0 +1,32 @@ +package swagger + + +// Endpoint represents an endpoint in a Swagger 2.0 document. +type Endpoint struct { + Name string `md:"name"` + Description string `md:"description"` + Path string `md:"path"` + Method string `md:"method"` + BeginDelim rune `md:"begin_delim"` + EndDelim rune `md:"end_delim"` +} + +// Trigger is the swagger trigger +type Trigger struct { + metadata *trigger.Metadata + settings *Settings + config *trigger.Config + Server *http.Server + logger log.Logger + response string +} + + +type Settings struct { + Port int `md:"port,required"` +} + +type HandlerSettings struct { + Method string `md:"method,required,allowed(GET,POST,PUT,PATCH,DELETE)"` + Path string `md:"path,required"` +} diff --git a/swagger/swagger.go b/swagger/swagger.go new file mode 100644 index 00000000..dea49b42 --- /dev/null +++ b/swagger/swagger.go @@ -0,0 +1,75 @@ +package swagger + +import ( + "bytes" + "encoding/json" + "fmt" + "strings" +) + +// Generate generates a Swagger 2.0 document based off of the provided endpoints. +func Generate(host string, name string, description string, version string, endpoints []Endpoint) ([]byte, error) { + paths := map[string]interface{}{} + + for _, endpoint := range endpoints { + path := map[string]interface{}{} + parameters, scrubbedPath := swaggerParametersExtractor(endpoint.Path, endpoint.BeginDelim, endpoint.EndDelim) + ok := map[string]interface{}{ + "description": endpoint.Description, + } + path[strings.ToLower(endpoint.Method)] = map[string]interface{}{ + "description": endpoint.Description, + "tags": []interface{}{endpoint.Name}, + "parameters": parameters, + "responses": map[string]interface{}{ + "200": ok, + "default": map[string]interface{}{ + "description": "error", + }, + }, + } + paths[scrubbedPath] = path + } + + swagger := map[string]interface{}{ + "swagger": "2.0", + "info": map[string]interface{}{ + "version": version, + "title": name, + "description": description, + }, + "host": host, + "paths": paths, + } + docs, err := json.MarshalIndent(&swagger, "", " ") + if err != nil { + return nil, err + } + return docs, err +} + +func swaggerParametersExtractor(path string, beginDelim rune, endDelim rune) ([]interface{}, string) { + parameters := []interface{}{} + routePath := []rune(path) + for i := 0; i < len(routePath); i++ { + if routePath[i] == beginDelim { + key := bytes.Buffer{} + for i++; i < len(routePath) && routePath[i] != endDelim; i++ { + if routePath[i] != ' ' && routePath[i] != '\t' { + key.WriteRune(routePath[i]) + } + } + if beginDelim == ':' { + path = strings.Replace(path, fmt.Sprintf(":%s", key.String()), fmt.Sprintf("{%s}", key.String()), 1) + } + parameter := map[string]interface{}{ + "name": key.String(), + "in": "path", + "required": true, + "type": "string", + } + parameters = append(parameters, parameter) + } + } + return parameters, path +} From 7cb5c898ab66929a9f2b3527acf0d171cddeabbe Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Mon, 5 Nov 2018 16:15:43 -0800 Subject: [PATCH 02/87] flogo changes --- swagger/examples/swagger/flogo.json | 42 +---------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/swagger/examples/swagger/flogo.json b/swagger/examples/swagger/flogo.json index d06a43e2..c6e4ca9e 100644 --- a/swagger/examples/swagger/flogo.json +++ b/swagger/examples/swagger/flogo.json @@ -36,12 +36,6 @@ "data": { "name": "Pets", "steps": [ - { - "service": "jwtService", - "input": { - "token": "=$.payload.headers.Authorization" - } - }, { "service": "PetStorePets", "input": { @@ -49,42 +43,8 @@ } } ], - "responses": [ - { - "if": "$.jwtService.outputs.valid == false", - "error": true, - "output": { - "code": 401, - "data": { - "error": "=$.PetStorePets.outputs" - } - } - }, - { - "if": "$.jwtService.outputs.valid == true", - "error": false, - "output": { - "code": 200, - "data": { - "error": "JWT token is valid", - "pet": "=$.PetStorePets.outputs.result" - } - } - } - ], + "responses": [], "services": [ - { - "name": "jwtService", - "description": "Validating JWT token to access Petstore service", - "ref": "github.com/project-flogo/microgateway/activity/jwt", - "settings": { - "signingMethod": "HMAC", - "key": "qwertyuiopasdfghjklzxcvbnm789101", - "aud": "www.mashling.io", - "iss": "Mashling", - "sub": "tempuser@mail.com" - } - }, { "name": "PetStorePets", "description": "Get pets by ID from the petstore", From 03e230c3c495e48f18413f2194e21a6130b90a7b Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Mon, 5 Nov 2018 16:25:23 -0800 Subject: [PATCH 03/87] Fix --- swagger/activity.go | 13 +++- swagger/examples/swagger/swagger/flogo.json | 71 +++++++++++++++++++++ swagger/metadata.go | 10 --- 3 files changed, 81 insertions(+), 13 deletions(-) create mode 100644 swagger/examples/swagger/swagger/flogo.json diff --git a/swagger/activity.go b/swagger/activity.go index 0973c914..5ecc654d 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -4,17 +4,15 @@ import( "fmt" "bytes" "context" - "encoding/json" "io" "net/http" - "net/url" "strconv" - "strings" "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" ) + var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) const DefaultPort = "9096" @@ -30,6 +28,15 @@ func (*Factory) Metadata() *trigger.Metadata { return triggerMd } +// Trigger is the swagger trigger +type Trigger struct { + metadata *trigger.Metadata + settings *Settings + config *trigger.Config + Server *http.Server + logger log.Logger + response string +} // New implements trigger.Factory.New func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { diff --git a/swagger/examples/swagger/swagger/flogo.json b/swagger/examples/swagger/swagger/flogo.json new file mode 100644 index 00000000..c6e4ca9e --- /dev/null +++ b/swagger/examples/swagger/swagger/flogo.json @@ -0,0 +1,71 @@ +{ + "name": "swagger", + "type": "flogo:app", + "version": "1.0.0", + "description": "This is a simple proxy.", + "properties": null, + "channels": null, + "triggers": [ + { + "name": "flogo-rest", + "id": "MyProxy", + "ref": "github.com/project-flogo/core/swagger", + "description": "Simple REST Trigger", + "settings": { + "port": "9096" + }, + "handlers": [ + { + "settings": { + "method": "GET", + "path": "/pets" + }, + "actions": [ + { + "id": "microgateway:jwt" + } + ] + } + ] + } + ], + "resources": [ + { + "id": "microgateway:jwt", + "compressed": false, + "data": { + "name": "Pets", + "steps": [ + { + "service": "PetStorePets", + "input": { + "pathParams.petId": "=$.jwtService.outputs.token.claims.id" + } + } + ], + "responses": [], + "services": [ + { + "name": "PetStorePets", + "description": "Get pets by ID from the petstore", + "ref": "github.com/project-flogo/contrib/activity/rest", + "settings": { + "uri": "https://petstore.swagger.io/v2/pet/:petId", + "method": "GET" + } + } + ] + } + } + ], + "actions": [ + { + "ref": "github.com/project-flogo/microgateway", + "settings": { + "uri": "microgateway:jwt" + }, + "id": "microgateway:jwt", + "metadata": null + } + ] +} \ No newline at end of file diff --git a/swagger/metadata.go b/swagger/metadata.go index 1779e1c4..ae18dad5 100644 --- a/swagger/metadata.go +++ b/swagger/metadata.go @@ -11,16 +11,6 @@ type Endpoint struct { EndDelim rune `md:"end_delim"` } -// Trigger is the swagger trigger -type Trigger struct { - metadata *trigger.Metadata - settings *Settings - config *trigger.Config - Server *http.Server - logger log.Logger - response string -} - type Settings struct { Port int `md:"port,required"` From d118ce0c98b87ca1195d4934843947eb7fb5850b Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Mon, 5 Nov 2018 16:29:00 -0800 Subject: [PATCH 04/87] Fix --- swagger/activity.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 5ecc654d..44fbd012 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -2,8 +2,6 @@ package swagger import( "fmt" - "bytes" - "context" "io" "net/http" "strconv" From a1262605b00b29427486cb5cff2c0b268ffa003f Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 10:15:26 -0800 Subject: [PATCH 05/87] Added code for swagger doc --- swagger/activity.go | 62 +++++++++--------- swagger/examples/swagger/flogo.json | 4 +- swagger/examples/swagger/swagger/flogo.json | 71 --------------------- 3 files changed, 33 insertions(+), 104 deletions(-) delete mode 100644 swagger/examples/swagger/swagger/flogo.json diff --git a/swagger/activity.go b/swagger/activity.go index 44fbd012..853929bc 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -9,6 +9,7 @@ import( "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" + "github.com/project-flogo/core/app" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) @@ -49,6 +50,8 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { port = DefaultPort } + response := Swagger("hostname",config) + mux := http.NewServeMux() server := &http.Server{ Addr: ":" + port, @@ -57,11 +60,10 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { trigger := &Trigger{ metadata: f.Metadata(), config: config, - response: string("Hello this is test for swagger"), + response: string(response), Server: server, } mux.HandleFunc("/swagger", trigger.SwaggerHandler) - //response := Swagger("hostname",config) return trigger, nil } @@ -89,38 +91,36 @@ func (t *Trigger) Stop() error { return nil } -/*func Swagger(hostname string, config *trigger.Config) string { +func Swagger(hostname string, config *trigger.Config) string { + var endpoints []Endpoint + var appConfig *app.Config if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { - fmt.Print + for _, handler := range config.Handlers{ + var endpoint Endpoint + endpoint.Name = config.Id + endpoint.Method = handler.Settings["method"].(string) + endpoint.Path = handler.Settings["path"].(string) + endpoint.Description = config.Settings["description"].(string) + var beginDelim, endDelim rune + switch config.Ref { + case "github.com/project-flogo/contrib/trigger/rest": + beginDelim = ':' + endDelim = "/" + default: + beginDelim = '{' + endDelim = '}' + } + endpoint.BeginDelim = beginDelim + endpoint.EndDelim = endDelim + endpoints = append(endpoints, endpoint) + } } - -}*/ - - -/*if trigger.Ref == "github.com/TIBCOSoftware/flogo-contrib/trigger/rest" { -for _, handler := range trigger.Handlers { -var endpoint swagger.Endpoint -endpoint.Name = trigger.Name -endpoint.Method = handler.Settings["method"].(string) -endpoint.Path = handler.Settings["path"].(string) -endpoint.Description = trigger.Description -var beginDelim, endDelim rune -switch trigger.Type { -case "github.com/TIBCOSoftware/flogo-contrib/trigger/rest": -beginDelim = ':' -endDelim = '/' -case "github.com/TIBCOSoftware/mashling/ext/flogo/trigger/gorillamuxtrigger": -beginDelim = '{' -endDelim = '}' -default: -beginDelim = '{' -endDelim = '}' -} -endpoint.BeginDelim = beginDelim -endpoint.EndDelim = endDelim -endpoints = append(endpoints, endpoint) + byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) + if err != nil { + return err + } + return string(byteArray[:]) } -}*/ func (t *Trigger) Initialize(ctx trigger.InitContext) error { diff --git a/swagger/examples/swagger/flogo.json b/swagger/examples/swagger/flogo.json index c6e4ca9e..586ae1cb 100644 --- a/swagger/examples/swagger/flogo.json +++ b/swagger/examples/swagger/flogo.json @@ -10,9 +10,9 @@ "name": "flogo-rest", "id": "MyProxy", "ref": "github.com/project-flogo/core/swagger", - "description": "Simple REST Trigger", "settings": { - "port": "9096" + "port": "9096", + "description": "Simple REST Trigger" }, "handlers": [ { diff --git a/swagger/examples/swagger/swagger/flogo.json b/swagger/examples/swagger/swagger/flogo.json deleted file mode 100644 index c6e4ca9e..00000000 --- a/swagger/examples/swagger/swagger/flogo.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "swagger", - "type": "flogo:app", - "version": "1.0.0", - "description": "This is a simple proxy.", - "properties": null, - "channels": null, - "triggers": [ - { - "name": "flogo-rest", - "id": "MyProxy", - "ref": "github.com/project-flogo/core/swagger", - "description": "Simple REST Trigger", - "settings": { - "port": "9096" - }, - "handlers": [ - { - "settings": { - "method": "GET", - "path": "/pets" - }, - "actions": [ - { - "id": "microgateway:jwt" - } - ] - } - ] - } - ], - "resources": [ - { - "id": "microgateway:jwt", - "compressed": false, - "data": { - "name": "Pets", - "steps": [ - { - "service": "PetStorePets", - "input": { - "pathParams.petId": "=$.jwtService.outputs.token.claims.id" - } - } - ], - "responses": [], - "services": [ - { - "name": "PetStorePets", - "description": "Get pets by ID from the petstore", - "ref": "github.com/project-flogo/contrib/activity/rest", - "settings": { - "uri": "https://petstore.swagger.io/v2/pet/:petId", - "method": "GET" - } - } - ] - } - } - ], - "actions": [ - { - "ref": "github.com/project-flogo/microgateway", - "settings": { - "uri": "microgateway:jwt" - }, - "id": "microgateway:jwt", - "metadata": null - } - ] -} \ No newline at end of file From d4158480df1ae958ac001cb30d540001d7529c80 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 10:16:16 -0800 Subject: [PATCH 06/87] Added code for swagger doc --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 853929bc..441efcfd 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -69,7 +69,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - io.WriteString(w, "{\"response\":\"Ping successful\"}\n") + io.WriteString(w, t.response) } // Start implements util.Managed.Start From 2acc50e2f56210e8a707c592e6bc252d42201245 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 10:40:22 -0800 Subject: [PATCH 07/87] Fixes --- swagger/activity.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 441efcfd..38917fee 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -105,7 +105,7 @@ func Swagger(hostname string, config *trigger.Config) string { switch config.Ref { case "github.com/project-flogo/contrib/trigger/rest": beginDelim = ':' - endDelim = "/" + endDelim = '/' default: beginDelim = '{' endDelim = '}' @@ -117,7 +117,7 @@ func Swagger(hostname string, config *trigger.Config) string { } byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) if err != nil { - return err + return string(err) } return string(byteArray[:]) } From 0f9976ad91582f777f4e0a566bb84e4ec9439d10 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 10:55:52 -0800 Subject: [PATCH 08/87] Fixes - response --- swagger/activity.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 38917fee..9bb0b44b 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -50,7 +50,10 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { port = DefaultPort } - response := Swagger("hostname",config) + response,err := Swagger("hostname",config) + if err != nil { + return nil, err + } mux := http.NewServeMux() server := &http.Server{ @@ -91,7 +94,7 @@ func (t *Trigger) Stop() error { return nil } -func Swagger(hostname string, config *trigger.Config) string { +func Swagger(hostname string, config *trigger.Config) (string, error) { var endpoints []Endpoint var appConfig *app.Config if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { @@ -117,9 +120,9 @@ func Swagger(hostname string, config *trigger.Config) string { } byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) if err != nil { - return string(err) + return nil,err } - return string(byteArray[:]) + return string(byteArray[:]), nil } From 44ae91ff63d81a67080d34dbe19499c174ef06e1 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 10:58:07 -0800 Subject: [PATCH 09/87] Fixes - error --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 9bb0b44b..fa52d17a 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -120,7 +120,7 @@ func Swagger(hostname string, config *trigger.Config) (string, error) { } byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) if err != nil { - return nil,err + return "",err } return string(byteArray[:]), nil } From 00d92a2cdc129b6f403553a5c404205bae9373d1 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:11:50 -0800 Subject: [PATCH 10/87] Trace - 1 --- swagger/activity.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index fa52d17a..71505ccc 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -49,8 +49,9 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { if len(port) == 0 { port = DefaultPort } - + fmt.Println("Calling Swagger") response,err := Swagger("hostname",config) + fmt.Println("After Swagger") if err != nil { return nil, err } @@ -95,15 +96,21 @@ func (t *Trigger) Stop() error { } func Swagger(hostname string, config *trigger.Config) (string, error) { + fmt.Println("Inside Swagger") var endpoints []Endpoint var appConfig *app.Config if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ + fmt.Println("Inside Swagger : for") var endpoint Endpoint endpoint.Name = config.Id + fmt.Println("ID") endpoint.Method = handler.Settings["method"].(string) + fmt.Println("Method") endpoint.Path = handler.Settings["path"].(string) + fmt.Println("Path") endpoint.Description = config.Settings["description"].(string) + fmt.Println("Description") var beginDelim, endDelim rune switch config.Ref { case "github.com/project-flogo/contrib/trigger/rest": @@ -118,10 +125,13 @@ func Swagger(hostname string, config *trigger.Config) (string, error) { endpoints = append(endpoints, endpoint) } } + fmt.Println("Before Generate") byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) if err != nil { + fmt.Println("Inside error") return "",err } + fmt.Println("Before return") return string(byteArray[:]), nil } From a1a7217c7d2afb91ac9abc0f613de81263a87e85 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:16:35 -0800 Subject: [PATCH 11/87] Trace - 2 --- swagger/activity.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 71505ccc..f167d1f5 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -126,13 +126,13 @@ func Swagger(hostname string, config *trigger.Config) (string, error) { } } fmt.Println("Before Generate") - byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) - if err != nil { - fmt.Println("Inside error") - return "",err - } - fmt.Println("Before return") - return string(byteArray[:]), nil + //byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) + //if err != nil { + // fmt.Println("Inside error") + // return "",err + //} + //fmt.Println("Before return") + return string(Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints)[:]), nil } From 0bb8f6cc825257f1c0d877c48cfdfa479ac40f20 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:21:07 -0800 Subject: [PATCH 12/87] Trace - 2 --- swagger/swagger.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/swagger/swagger.go b/swagger/swagger.go index dea49b42..78a54e63 100644 --- a/swagger/swagger.go +++ b/swagger/swagger.go @@ -9,14 +9,18 @@ import ( // Generate generates a Swagger 2.0 document based off of the provided endpoints. func Generate(host string, name string, description string, version string, endpoints []Endpoint) ([]byte, error) { + fmt.Println("Inside Generate") paths := map[string]interface{}{} for _, endpoint := range endpoints { path := map[string]interface{}{} + fmt.Println("Before scrubbedpath") parameters, scrubbedPath := swaggerParametersExtractor(endpoint.Path, endpoint.BeginDelim, endpoint.EndDelim) + fmt.Println("After swag returns") ok := map[string]interface{}{ "description": endpoint.Description, } + fmt.Println("path map") path[strings.ToLower(endpoint.Method)] = map[string]interface{}{ "description": endpoint.Description, "tags": []interface{}{endpoint.Name}, @@ -41,17 +45,21 @@ func Generate(host string, name string, description string, version string, endp "host": host, "paths": paths, } + fmt.Println("marshalllll") docs, err := json.MarshalIndent(&swagger, "", " ") if err != nil { return nil, err } + fmt.Println("before return generate") return docs, err } func swaggerParametersExtractor(path string, beginDelim rune, endDelim rune) ([]interface{}, string) { + fmt.Println("Inside Swaggerparams") parameters := []interface{}{} routePath := []rune(path) for i := 0; i < len(routePath); i++ { + fmt.Println("Inside for") if routePath[i] == beginDelim { key := bytes.Buffer{} for i++; i < len(routePath) && routePath[i] != endDelim; i++ { @@ -71,5 +79,6 @@ func swaggerParametersExtractor(path string, beginDelim rune, endDelim rune) ([] parameters = append(parameters, parameter) } } + fmt.Println("Before swag returns") return parameters, path } From 43cc8f47710cf24238a3d15eaa12e72269af5b14 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:24:36 -0800 Subject: [PATCH 13/87] Trace - 3 --- swagger/activity.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index f167d1f5..71505ccc 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -126,13 +126,13 @@ func Swagger(hostname string, config *trigger.Config) (string, error) { } } fmt.Println("Before Generate") - //byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) - //if err != nil { - // fmt.Println("Inside error") - // return "",err - //} - //fmt.Println("Before return") - return string(Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints)[:]), nil + byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) + if err != nil { + fmt.Println("Inside error") + return "",err + } + fmt.Println("Before return") + return string(byteArray[:]), nil } From b49e4bedb075a543200418f560810500466b95c5 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:30:23 -0800 Subject: [PATCH 14/87] Trace - 4 --- swagger/activity.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 71505ccc..70d9d8f8 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -126,10 +126,10 @@ func Swagger(hostname string, config *trigger.Config) (string, error) { } } fmt.Println("Before Generate") - byteArray,err := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) - if err != nil { + byteArray,error := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) + if error != nil { fmt.Println("Inside error") - return "",err + return "",error } fmt.Println("Before return") return string(byteArray[:]), nil From d55792928a22acce9195141e72a46ff22a23acf1 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:39:30 -0800 Subject: [PATCH 15/87] Trace - 4 --- swagger/activity.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 70d9d8f8..68e8beaf 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -50,11 +50,9 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { port = DefaultPort } fmt.Println("Calling Swagger") - response,err := Swagger("hostname",config) + response,_ := Swagger("hostname",config) fmt.Println("After Swagger") - if err != nil { - return nil, err - } + mux := http.NewServeMux() server := &http.Server{ @@ -95,7 +93,7 @@ func (t *Trigger) Stop() error { return nil } -func Swagger(hostname string, config *trigger.Config) (string, error) { +func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint var appConfig *app.Config @@ -126,13 +124,14 @@ func Swagger(hostname string, config *trigger.Config) (string, error) { } } fmt.Println("Before Generate") - byteArray,error := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) + /*byteArray,error := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) if error != nil { fmt.Println("Inside error") return "",error } fmt.Println("Before return") - return string(byteArray[:]), nil + return string(byteArray[:]), nil*/ + return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) } From 553f626158f8063c052e852738e636eba5a935d8 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:44:08 -0800 Subject: [PATCH 16/87] Trace - 4 --- swagger/activity.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/swagger/activity.go b/swagger/activity.go index 68e8beaf..7b846d69 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -131,6 +131,9 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } fmt.Println("Before return") return string(byteArray[:]), nil*/ + fmt.Println("App name :", appConfig.Name) + fmt.Println("Description :", appConfig.Description) + fmt.Println("Version :", appConfig.Version) return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) } From 68b6873abc67f1f5afcf9a5ce562a3666ae01d59 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:51:15 -0800 Subject: [PATCH 17/87] Trace - 4 --- swagger/activity.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 7b846d69..e9fdefb4 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -96,7 +96,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - var appConfig *app.Config + var appConfig *app if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : for") @@ -131,7 +131,7 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } fmt.Println("Before return") return string(byteArray[:]), nil*/ - fmt.Println("App name :", appConfig.Name) + fmt.Println("App name :", appConfig.Name()) fmt.Println("Description :", appConfig.Description) fmt.Println("Version :", appConfig.Version) return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) From ef8c20823742145be27c6f7d9600ffd4ceaf307e Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 11:59:48 -0800 Subject: [PATCH 18/87] Trace - 5 --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index e9fdefb4..b8c6857e 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -96,7 +96,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - var appConfig *app + var appConfig *app.Config if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : for") From e4c2062606d901d35557373bdbb149163201ec63 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 12:00:59 -0800 Subject: [PATCH 19/87] Fix - 1 --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index b8c6857e..7b846d69 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -131,7 +131,7 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } fmt.Println("Before return") return string(byteArray[:]), nil*/ - fmt.Println("App name :", appConfig.Name()) + fmt.Println("App name :", appConfig.Name) fmt.Println("Description :", appConfig.Description) fmt.Println("Version :", appConfig.Version) return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) From 3df09ae9133df6d3dd61ab97e7f49296730d322d Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 13:10:10 -0800 Subject: [PATCH 20/87] Fix - 2 --- swagger/activity.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 7b846d69..7d04f87c 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -9,7 +9,7 @@ import( "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" - "github.com/project-flogo/core/app" + "github.com/project-flogo/core/engine" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) @@ -96,7 +96,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - var appConfig *app.Config + appConfig := App() if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : for") @@ -131,9 +131,9 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } fmt.Println("Before return") return string(byteArray[:]), nil*/ - fmt.Println("App name :", appConfig.Name) - fmt.Println("Description :", appConfig.Description) - fmt.Println("Version :", appConfig.Version) + fmt.Println("App name :", appConfig.name) + //fmt.Println("Description :", appConfig.Description) + fmt.Println("Version :", appConfig.version) return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) } From 2926aa3c919a033b30cae4e4ef9c5637d0d8b3c6 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 13:15:08 -0800 Subject: [PATCH 21/87] Fix - 3 --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 7d04f87c..c8b2246d 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -96,7 +96,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - appConfig := App() + appConfig := *engine.App() if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : for") From 6bc0dbd7518ebc0b94df471c7bdc6077f217e639 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 13:26:27 -0800 Subject: [PATCH 22/87] Fix - 3 --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index c8b2246d..72f719cd 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -96,7 +96,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - appConfig := *engine.App() + appConfig := *engine.engineImpl.flogoApp if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : for") From 8a5109860b4734d38e79f15fc1e09c53348836ef Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 13:37:00 -0800 Subject: [PATCH 23/87] Fix - 3 --- swagger/activity.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 72f719cd..c1133749 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -9,7 +9,7 @@ import( "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" - "github.com/project-flogo/core/engine" + "github.com/project-flogo/core/api" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) @@ -96,7 +96,8 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - appConfig := *engine.engineImpl.flogoApp + appConfig := *api.Properties() + fmt.Println("Details : ",appConfig) if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : for") @@ -131,9 +132,9 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } fmt.Println("Before return") return string(byteArray[:]), nil*/ - fmt.Println("App name :", appConfig.name) + fmt.Println("App name :", appConfig.Name()) //fmt.Println("Description :", appConfig.Description) - fmt.Println("Version :", appConfig.version) + fmt.Println("Version :", appConfig.Version()) return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) } From b57231e9639403e44a7b2ed725a66d4900c71e26 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Tue, 6 Nov 2018 13:40:20 -0800 Subject: [PATCH 24/87] Fix - 3 --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index c1133749..51ddf335 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -96,7 +96,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - appConfig := *api.Properties() + appConfig := *api.App.properties fmt.Println("Details : ",appConfig) if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ From 11e318b52bc8a45862739d14fdb94a410441b981 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 10:05:02 -0800 Subject: [PATCH 25/87] Added AppConfig in trigger-config --- swagger/activity.go | 7 +++---- trigger/config.go | 2 ++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 51ddf335..b7701a01 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -9,7 +9,7 @@ import( "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" - "github.com/project-flogo/core/api" + "github.com/project-flogo/core/engine" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) @@ -96,7 +96,6 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - appConfig := *api.App.properties fmt.Println("Details : ",appConfig) if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ @@ -132,9 +131,9 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } fmt.Println("Before return") return string(byteArray[:]), nil*/ - fmt.Println("App name :", appConfig.Name()) + fmt.Println("App name :", config.AppConfig.name) //fmt.Println("Description :", appConfig.Description) - fmt.Println("Version :", appConfig.Version()) + fmt.Println("Version :", config.Appconfig.version) return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) } diff --git a/trigger/config.go b/trigger/config.go index 4bc61036..6fd3f3e5 100644 --- a/trigger/config.go +++ b/trigger/config.go @@ -7,6 +7,7 @@ import ( "github.com/project-flogo/core/data/mapper" "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/data/resolve" + "github.com/project-flogo/core/app" ) // Config is the configuration for a Trigger @@ -16,6 +17,7 @@ type Config struct { Ref string `json:"ref"` Settings map[string]interface{} `json:"settings"` Handlers []*HandlerConfig `json:"handlers"` + AppConfig *app.App `json:"appconfig"` } func (c *Config) FixUp(md *Metadata) error { From 0045be5c5fcd3b3e19a495ff4e761d6bff94d8f5 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 10:11:50 -0800 Subject: [PATCH 26/87] Added AppConfig in trigger-config --- swagger/activity.go | 5 ++--- trigger/config.go | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index b7701a01..a28daa63 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -9,7 +9,6 @@ import( "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" - "github.com/project-flogo/core/engine" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) @@ -131,9 +130,9 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } fmt.Println("Before return") return string(byteArray[:]), nil*/ - fmt.Println("App name :", config.AppConfig.name) + fmt.Println("App name :", config.AppConfig.Name) //fmt.Println("Description :", appConfig.Description) - fmt.Println("Version :", config.Appconfig.version) + fmt.Println("Version :", config.Appconfig.Version) return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) } diff --git a/trigger/config.go b/trigger/config.go index 6fd3f3e5..e95172b8 100644 --- a/trigger/config.go +++ b/trigger/config.go @@ -17,7 +17,7 @@ type Config struct { Ref string `json:"ref"` Settings map[string]interface{} `json:"settings"` Handlers []*HandlerConfig `json:"handlers"` - AppConfig *app.App `json:"appconfig"` + AppConfig *app.Config `json:"appconfig"` } func (c *Config) FixUp(md *Metadata) error { From 4543bce900a0a48e41e0f877455400b069379b71 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 11:08:19 -0800 Subject: [PATCH 27/87] Added AppConfig in trigger-config --- swagger/activity.go | 8 +++++--- trigger/config.go | 14 +++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index a28daa63..5c078f26 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -95,7 +95,6 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - fmt.Println("Details : ",appConfig) if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : for") @@ -123,16 +122,19 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } } fmt.Println("Before Generate") + configurations, _ := config.AppConfig.GetAppConfig() + fmt.Println(configurations) /*byteArray,error := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) if error != nil { fmt.Println("Inside error") return "",error } + fmt.Println("Before return") return string(byteArray[:]), nil*/ - fmt.Println("App name :", config.AppConfig.Name) + //fmt.Println("App name :", config.AppConfig.Name) //fmt.Println("Description :", appConfig.Description) - fmt.Println("Version :", config.Appconfig.Version) + //fmt.Println("Version :", config.Appconfig.Version) return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) } diff --git a/trigger/config.go b/trigger/config.go index e95172b8..b22ff0b4 100644 --- a/trigger/config.go +++ b/trigger/config.go @@ -7,17 +7,17 @@ import ( "github.com/project-flogo/core/data/mapper" "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/data/resolve" - "github.com/project-flogo/core/app" + "github.com/project-flogo/core/engine" ) // Config is the configuration for a Trigger type Config struct { - Id string `json:"id"` - Type string `json:"type"` //an alias to the ref, can be used if imported - Ref string `json:"ref"` - Settings map[string]interface{} `json:"settings"` - Handlers []*HandlerConfig `json:"handlers"` - AppConfig *app.Config `json:"appconfig"` + Id string `json:"id"` + Type string `json:"type"` //an alias to the ref, can be used if imported + Ref string `json:"ref"` + Settings map[string]interface{} `json:"settings"` + Handlers []*HandlerConfig `json:"handlers"` + AppConfig *engine.AppConfigProvider `json:"appconfig"` } func (c *Config) FixUp(md *Metadata) error { From 195e398ffdd0f6d9816ab27c3ac2473a7d5a5d86 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 11:18:56 -0800 Subject: [PATCH 28/87] Added AppConfig in trigger-config --- swagger/activity.go | 3 ++- trigger/config.go | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 5c078f26..4be008b9 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -9,6 +9,7 @@ import( "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" + "github.com/project-flogo/core/engine" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) @@ -122,7 +123,7 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } } fmt.Println("Before Generate") - configurations, _ := config.AppConfig.GetAppConfig() + configurations:= *engine.AppConfigProvider.GetAppConfig() fmt.Println(configurations) /*byteArray,error := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) if error != nil { diff --git a/trigger/config.go b/trigger/config.go index b22ff0b4..290de5b8 100644 --- a/trigger/config.go +++ b/trigger/config.go @@ -7,7 +7,7 @@ import ( "github.com/project-flogo/core/data/mapper" "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/data/resolve" - "github.com/project-flogo/core/engine" + //"github.com/project-flogo/core/engine" ) // Config is the configuration for a Trigger @@ -17,7 +17,7 @@ type Config struct { Ref string `json:"ref"` Settings map[string]interface{} `json:"settings"` Handlers []*HandlerConfig `json:"handlers"` - AppConfig *engine.AppConfigProvider `json:"appconfig"` + //AppConfig *engine.AppConfigProvider `json:"appconfig"` } func (c *Config) FixUp(md *Metadata) error { From 784797beb569c603136f25fb6a39b1b68c475ae3 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 11:52:56 -0800 Subject: [PATCH 29/87] Added Appconfig parameter in trigger struct --- app/instances.go | 5 ++++- swagger/activity.go | 5 ++--- trigger/config.go | 3 +-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/instances.go b/app/instances.go index 00b5d0a9..003008d5 100644 --- a/app/instances.go +++ b/app/instances.go @@ -48,7 +48,6 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( mapperFactory := mapper.NewFactory(resolve.GetBasicResolver()) expressionFactory := expression.NewFactory(resolve.GetBasicResolver()) - for _, tConfig := range tConfigs { _, exists := triggers[tConfig.Id] @@ -56,6 +55,10 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( return nil, fmt.Errorf("Trigger with id '%s' already registered, trigger ids have to be unique", tConfig.Id) } + //adding map to get app details + tConfig.AppConfig = map[string]string{"Name": a.name, "Version": a.version, "Description": *Config.Version} + + if tConfig.Ref == "" { var ok bool tConfig.Ref, ok =support.GetAliasRef("trigger", tConfig.Type) diff --git a/swagger/activity.go b/swagger/activity.go index 4be008b9..d113dceb 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -123,8 +123,6 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } } fmt.Println("Before Generate") - configurations:= *engine.AppConfigProvider.GetAppConfig() - fmt.Println(configurations) /*byteArray,error := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) if error != nil { fmt.Println("Inside error") @@ -136,7 +134,8 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { //fmt.Println("App name :", config.AppConfig.Name) //fmt.Println("Description :", appConfig.Description) //fmt.Println("Version :", config.Appconfig.Version) - return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) + //return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) + return Generate(hostname, "", "", "", endpoints) } diff --git a/trigger/config.go b/trigger/config.go index 290de5b8..4717a376 100644 --- a/trigger/config.go +++ b/trigger/config.go @@ -7,7 +7,6 @@ import ( "github.com/project-flogo/core/data/mapper" "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/data/resolve" - //"github.com/project-flogo/core/engine" ) // Config is the configuration for a Trigger @@ -17,7 +16,7 @@ type Config struct { Ref string `json:"ref"` Settings map[string]interface{} `json:"settings"` Handlers []*HandlerConfig `json:"handlers"` - //AppConfig *engine.AppConfigProvider `json:"appconfig"` + AppConfig map[string]string `json:"appconfig"` } func (c *Config) FixUp(md *Metadata) error { From 60c82e39c0e329d216de0f65be5f45a55cd93060 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 12:42:41 -0800 Subject: [PATCH 30/87] App config changes --- app/app.go | 3 ++- app/instances.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/app.go b/app/app.go index 06f0ae21..429457ea 100644 --- a/app/app.go +++ b/app/app.go @@ -20,7 +20,7 @@ type Option func(*App) error func New(config *Config, runner action.Runner, options ...Option) (*App, error) { - app := &App{stopOnError: true, name: config.Name, version: config.Version} + app := &App{stopOnError: true, name: config.Name, version: config.Version, description: config.Description} for _, anImport := range config.Imports { registerImport(anImport) @@ -92,6 +92,7 @@ func ExternalProperties(providerId string, overrides string, processors ...prope type App struct { name string version string + description string propManager *property.Manager resManager *resource.Manager actions map[string]action.Action diff --git a/app/instances.go b/app/instances.go index 003008d5..80e35711 100644 --- a/app/instances.go +++ b/app/instances.go @@ -56,7 +56,7 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( } //adding map to get app details - tConfig.AppConfig = map[string]string{"Name": a.name, "Version": a.version, "Description": *Config.Version} + tConfig.AppConfig = map[string]string{"Name": a.name, "Version": a.version, "Description": a.description} if tConfig.Ref == "" { From 391ee5554c46497709a61c7254a81835b5822062 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 12:44:31 -0800 Subject: [PATCH 31/87] code clean --- swagger/activity.go | 1 - 1 file changed, 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index d113dceb..e6c840d7 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -9,7 +9,6 @@ import( "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" - "github.com/project-flogo/core/engine" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) From 6391748ca60294eef0fc9f5919511bc24ccd4ac9 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 12:49:10 -0800 Subject: [PATCH 32/87] Display swagger response --- swagger/activity.go | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index e6c840d7..33a8b761 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -122,19 +122,12 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } } fmt.Println("Before Generate") - /*byteArray,error := Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) - if error != nil { + byteArray,err := Generate(hostname, config.AppConfig["Name"], config.AppConfig["Version"], config.AppConfig["Description"], endpoints) + if err != nil { fmt.Println("Inside error") - return "",error + return "",err } - - fmt.Println("Before return") - return string(byteArray[:]), nil*/ - //fmt.Println("App name :", config.AppConfig.Name) - //fmt.Println("Description :", appConfig.Description) - //fmt.Println("Version :", config.Appconfig.Version) - //return Generate(hostname, appConfig.Name, appConfig.Description, appConfig.Version, endpoints) - return Generate(hostname, "", "", "", endpoints) + return string(byteArray[:]),nil } From c5f050342a20ea4a289e88b2681858af22b1e45f Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 12:50:59 -0800 Subject: [PATCH 33/87] Display swagger --- swagger/activity.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 33a8b761..72594751 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -121,13 +121,7 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { endpoints = append(endpoints, endpoint) } } - fmt.Println("Before Generate") - byteArray,err := Generate(hostname, config.AppConfig["Name"], config.AppConfig["Version"], config.AppConfig["Description"], endpoints) - if err != nil { - fmt.Println("Inside error") - return "",err - } - return string(byteArray[:]),nil + return Generate(hostname, config.AppConfig["Name"], config.AppConfig["Version"], config.AppConfig["Description"], endpoints) } From b65f65387e488f23cd0de1146f829648de302f61 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 12:59:10 -0800 Subject: [PATCH 34/87] fix-1 --- swagger/activity.go | 11 ++++++----- swagger/swagger.go | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 72594751..22fca2f7 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -97,16 +97,17 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { var endpoints []Endpoint if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ - fmt.Println("Inside Swagger : for") + + fmt.Println("Inside Swagger : ", handler) var endpoint Endpoint endpoint.Name = config.Id - fmt.Println("ID") + fmt.Println("ID : ",endpoint.Name) endpoint.Method = handler.Settings["method"].(string) - fmt.Println("Method") + fmt.Println("Method : ",endpoint.Method) endpoint.Path = handler.Settings["path"].(string) - fmt.Println("Path") + fmt.Println("Path : ",endpoint.Path) endpoint.Description = config.Settings["description"].(string) - fmt.Println("Description") + fmt.Println("Description :",endpoint.Description) var beginDelim, endDelim rune switch config.Ref { case "github.com/project-flogo/contrib/trigger/rest": diff --git a/swagger/swagger.go b/swagger/swagger.go index 78a54e63..d5dd5c2b 100644 --- a/swagger/swagger.go +++ b/swagger/swagger.go @@ -10,6 +10,7 @@ import ( // Generate generates a Swagger 2.0 document based off of the provided endpoints. func Generate(host string, name string, description string, version string, endpoints []Endpoint) ([]byte, error) { fmt.Println("Inside Generate") + fmt.Println("endpoints received:", endpoints) paths := map[string]interface{}{} for _, endpoint := range endpoints { From d600aaf5998ae6199ae2c61bf195025677545660 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 13:02:01 -0800 Subject: [PATCH 35/87] Code clean --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 22fca2f7..9fe1efaa 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -95,7 +95,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - if config.Ref == "github.com/project-flogo/contrib/trigger/rest" { + if config.Type == "github.com/project-flogo/contrib/trigger/rest" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : ", handler) From d722c24e6e5018d9a51e782e17b7023cf6c15f0a Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 13:09:26 -0800 Subject: [PATCH 36/87] fix-2 --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 9fe1efaa..d471c43f 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -95,7 +95,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - if config.Type == "github.com/project-flogo/contrib/trigger/rest" { + if config.Type == "github.com/project-flogo/core/swagger" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : ", handler) From 67e482cd6a2e2d54477ccba8c4032b0a48aebb32 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 13:12:32 -0800 Subject: [PATCH 37/87] code clean --- swagger/activity.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index d471c43f..61049cd2 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -43,7 +43,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { if err != nil { return nil, err } - fmt.Println("config is:",config) + fmt.Printf("%+v\n", config) port := strconv.Itoa(config.Settings["port"].(int)) if len(port) == 0 { port = DefaultPort @@ -95,7 +95,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { fmt.Println("Inside Swagger") var endpoints []Endpoint - if config.Type == "github.com/project-flogo/core/swagger" { + if config.Ref == "github.com/project-flogo/core/swagger" { for _, handler := range config.Handlers{ fmt.Println("Inside Swagger : ", handler) From 7e34657c08a8793a0eb7cb5ec4f1568502b4d331 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 13:26:44 -0800 Subject: [PATCH 38/87] Code clean --- swagger/activity.go | 14 ++------------ swagger/swagger.go | 10 ---------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 61049cd2..2bdf1fed 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -43,15 +43,12 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { if err != nil { return nil, err } - fmt.Printf("%+v\n", config) port := strconv.Itoa(config.Settings["port"].(int)) if len(port) == 0 { port = DefaultPort } - fmt.Println("Calling Swagger") - response,_ := Swagger("hostname",config) - fmt.Println("After Swagger") + response,_ := Swagger("hostname",config) mux := http.NewServeMux() server := &http.Server{ @@ -93,21 +90,14 @@ func (t *Trigger) Stop() error { } func Swagger(hostname string, config *trigger.Config) ([]byte, error) { - fmt.Println("Inside Swagger") var endpoints []Endpoint - if config.Ref == "github.com/project-flogo/core/swagger" { + if config.Ref == "github.com/project-flogo/contrib/trigger/rest" || config.Ref == "github.com/project-flogo/core/swagger"{ for _, handler := range config.Handlers{ - - fmt.Println("Inside Swagger : ", handler) var endpoint Endpoint endpoint.Name = config.Id - fmt.Println("ID : ",endpoint.Name) endpoint.Method = handler.Settings["method"].(string) - fmt.Println("Method : ",endpoint.Method) endpoint.Path = handler.Settings["path"].(string) - fmt.Println("Path : ",endpoint.Path) endpoint.Description = config.Settings["description"].(string) - fmt.Println("Description :",endpoint.Description) var beginDelim, endDelim rune switch config.Ref { case "github.com/project-flogo/contrib/trigger/rest": diff --git a/swagger/swagger.go b/swagger/swagger.go index d5dd5c2b..dea49b42 100644 --- a/swagger/swagger.go +++ b/swagger/swagger.go @@ -9,19 +9,14 @@ import ( // Generate generates a Swagger 2.0 document based off of the provided endpoints. func Generate(host string, name string, description string, version string, endpoints []Endpoint) ([]byte, error) { - fmt.Println("Inside Generate") - fmt.Println("endpoints received:", endpoints) paths := map[string]interface{}{} for _, endpoint := range endpoints { path := map[string]interface{}{} - fmt.Println("Before scrubbedpath") parameters, scrubbedPath := swaggerParametersExtractor(endpoint.Path, endpoint.BeginDelim, endpoint.EndDelim) - fmt.Println("After swag returns") ok := map[string]interface{}{ "description": endpoint.Description, } - fmt.Println("path map") path[strings.ToLower(endpoint.Method)] = map[string]interface{}{ "description": endpoint.Description, "tags": []interface{}{endpoint.Name}, @@ -46,21 +41,17 @@ func Generate(host string, name string, description string, version string, endp "host": host, "paths": paths, } - fmt.Println("marshalllll") docs, err := json.MarshalIndent(&swagger, "", " ") if err != nil { return nil, err } - fmt.Println("before return generate") return docs, err } func swaggerParametersExtractor(path string, beginDelim rune, endDelim rune) ([]interface{}, string) { - fmt.Println("Inside Swaggerparams") parameters := []interface{}{} routePath := []rune(path) for i := 0; i < len(routePath); i++ { - fmt.Println("Inside for") if routePath[i] == beginDelim { key := bytes.Buffer{} for i++; i < len(routePath) && routePath[i] != endDelim; i++ { @@ -80,6 +71,5 @@ func swaggerParametersExtractor(path string, beginDelim rune, endDelim rune) ([] parameters = append(parameters, parameter) } } - fmt.Println("Before swag returns") return parameters, path } From d752631da1b6d379081cd741dddce326e0c2b8e3 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 15:40:27 -0800 Subject: [PATCH 39/87] code to get all available triggers --- app/instances.go | 5 ++-- swagger/activity.go | 41 ++++++++++++++++------------- swagger/examples/swagger/flogo.json | 34 ++++++++++++++++++++++-- trigger/config.go | 2 +- 4 files changed, 57 insertions(+), 25 deletions(-) diff --git a/app/instances.go b/app/instances.go index 80e35711..1d5a19be 100644 --- a/app/instances.go +++ b/app/instances.go @@ -50,14 +50,13 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( expressionFactory := expression.NewFactory(resolve.GetBasicResolver()) for _, tConfig := range tConfigs { + tConfig.AppConfig = map[string]interface{}{"Triggers": a.triggers,"Name": a.name, "Version": a.version, "Description": a.description} + _, exists := triggers[tConfig.Id] if exists { return nil, fmt.Errorf("Trigger with id '%s' already registered, trigger ids have to be unique", tConfig.Id) } - //adding map to get app details - tConfig.AppConfig = map[string]string{"Name": a.name, "Version": a.version, "Description": a.description} - if tConfig.Ref == "" { var ok bool diff --git a/swagger/activity.go b/swagger/activity.go index 2bdf1fed..0781086c 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -91,27 +91,30 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { var endpoints []Endpoint - if config.Ref == "github.com/project-flogo/contrib/trigger/rest" || config.Ref == "github.com/project-flogo/core/swagger"{ - for _, handler := range config.Handlers{ - var endpoint Endpoint - endpoint.Name = config.Id - endpoint.Method = handler.Settings["method"].(string) - endpoint.Path = handler.Settings["path"].(string) - endpoint.Description = config.Settings["description"].(string) - var beginDelim, endDelim rune - switch config.Ref { - case "github.com/project-flogo/contrib/trigger/rest": - beginDelim = ':' - endDelim = '/' - default: - beginDelim = '{' - endDelim = '}' + fmt.Println("%+v\n", config.AppConfig) + //for _, trigger := range config.AppConfig["Triggers"] { + if config.Ref == "github.com/project-flogo/contrib/trigger/rest" || config.Ref == "github.com/project-flogo/core/swagger" { + for _, handler := range config.Handlers { + var endpoint Endpoint + endpoint.Name = config.Id + endpoint.Method = handler.Settings["method"].(string) + endpoint.Path = handler.Settings["path"].(string) + endpoint.Description = config.Settings["description"].(string) + var beginDelim, endDelim rune + switch config.Ref { + case "github.com/project-flogo/contrib/trigger/rest": + beginDelim = ':' + endDelim = '/' + default: + beginDelim = '{' + endDelim = '}' + } + endpoint.BeginDelim = beginDelim + endpoint.EndDelim = endDelim + endpoints = append(endpoints, endpoint) } - endpoint.BeginDelim = beginDelim - endpoint.EndDelim = endDelim - endpoints = append(endpoints, endpoint) } - } + //} return Generate(hostname, config.AppConfig["Name"], config.AppConfig["Version"], config.AppConfig["Description"], endpoints) } diff --git a/swagger/examples/swagger/flogo.json b/swagger/examples/swagger/flogo.json index 586ae1cb..aa0780e5 100644 --- a/swagger/examples/swagger/flogo.json +++ b/swagger/examples/swagger/flogo.json @@ -6,10 +6,32 @@ "properties": null, "channels": null, "triggers": [ + { + "name": "swagger", + "id": "swagdocs", + "ref": "github.com/project-flogo/core/swagger", + "settings": { + "port": "1234", + "description": "Simple swagger doc Trigger" + }, + "handlers": [ + { + "settings": { + "method": "GET", + "path": "/swagger" + }, + "actions": [ + { + "id": "swaggertrigger" + } + ] + } + ] + }, { "name": "flogo-rest", "id": "MyProxy", - "ref": "github.com/project-flogo/core/swagger", + "ref": "github.com/project-flogo/contrib/trigger/rest", "settings": { "port": "9096", "description": "Simple REST Trigger" @@ -39,7 +61,7 @@ { "service": "PetStorePets", "input": { - "pathParams.petId": "=$.jwtService.outputs.token.claims.id" + "pathParams.petId": "1" } } ], @@ -59,6 +81,14 @@ } ], "actions": [ + { + "ref": "github.com/project-flogo/microgateway", + "settings": { + "uri": "microgateway:jwt" + }, + "id": "swaggertrigger", + "metadata": null + }, { "ref": "github.com/project-flogo/microgateway", "settings": { diff --git a/trigger/config.go b/trigger/config.go index 4717a376..09e3bea5 100644 --- a/trigger/config.go +++ b/trigger/config.go @@ -16,7 +16,7 @@ type Config struct { Ref string `json:"ref"` Settings map[string]interface{} `json:"settings"` Handlers []*HandlerConfig `json:"handlers"` - AppConfig map[string]string `json:"appconfig"` + AppConfig map[string]interface{} `json:"appconfig"` } func (c *Config) FixUp(md *Metadata) error { From 60e6b45cdbacbb5d21c6060582f33f230bf27c20 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 15:43:56 -0800 Subject: [PATCH 40/87] fix -1 --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 0781086c..087bee93 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -115,7 +115,7 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } } //} - return Generate(hostname, config.AppConfig["Name"], config.AppConfig["Version"], config.AppConfig["Description"], endpoints) + return Generate(hostname, config.AppConfig["Name"].(string), config.AppConfig["Version"].(string), config.AppConfig["Description"].(string), endpoints) } From 5dc4dcb8e28ccbe384e7cce796794cdf00bf26d4 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Wed, 7 Nov 2018 16:23:51 -0800 Subject: [PATCH 41/87] Adding trigger detalis --- app/instances.go | 5 +- swagger/activity.go | 6 +- swagger/examples/swagger/swagger/flogo.json | 101 ++++++++++++++++++++ 3 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 swagger/examples/swagger/swagger/flogo.json diff --git a/app/instances.go b/app/instances.go index 1d5a19be..c7c2be4d 100644 --- a/app/instances.go +++ b/app/instances.go @@ -50,7 +50,8 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( expressionFactory := expression.NewFactory(resolve.GetBasicResolver()) for _, tConfig := range tConfigs { - tConfig.AppConfig = map[string]interface{}{"Triggers": a.triggers,"Name": a.name, "Version": a.version, "Description": a.description} + tConfig.AppConfig = map[string]interface{}{"Name": a.name, "Version": a.version, "Description": a.description, + "Trigger": make(map[string]interface{})} _, exists := triggers[tConfig.Id] if exists { @@ -153,8 +154,8 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( } triggers[tConfig.Id] = &triggerWrapper{ref: tConfig.Ref, trg: trg, status: &managed.StatusInfo{Name: tConfig.Id}} + tConfig.AppConfig["Trigger"][tConfig.Id] = tConfig } - return triggers, nil } diff --git a/swagger/activity.go b/swagger/activity.go index 087bee93..9a865dfd 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -91,8 +91,10 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { var endpoints []Endpoint - fmt.Println("%+v\n", config.AppConfig) - //for _, trigger := range config.AppConfig["Triggers"] { + fmt.Println("details: \n") + fmt.Println("%+v\n", config.AppConfig["Trigger"]) + //var triggerMap = config.AppConfig["Trigger"] + //for _, trigger := range config.AppConfig["Trigger"] { if config.Ref == "github.com/project-flogo/contrib/trigger/rest" || config.Ref == "github.com/project-flogo/core/swagger" { for _, handler := range config.Handlers { var endpoint Endpoint diff --git a/swagger/examples/swagger/swagger/flogo.json b/swagger/examples/swagger/swagger/flogo.json new file mode 100644 index 00000000..aa0780e5 --- /dev/null +++ b/swagger/examples/swagger/swagger/flogo.json @@ -0,0 +1,101 @@ +{ + "name": "swagger", + "type": "flogo:app", + "version": "1.0.0", + "description": "This is a simple proxy.", + "properties": null, + "channels": null, + "triggers": [ + { + "name": "swagger", + "id": "swagdocs", + "ref": "github.com/project-flogo/core/swagger", + "settings": { + "port": "1234", + "description": "Simple swagger doc Trigger" + }, + "handlers": [ + { + "settings": { + "method": "GET", + "path": "/swagger" + }, + "actions": [ + { + "id": "swaggertrigger" + } + ] + } + ] + }, + { + "name": "flogo-rest", + "id": "MyProxy", + "ref": "github.com/project-flogo/contrib/trigger/rest", + "settings": { + "port": "9096", + "description": "Simple REST Trigger" + }, + "handlers": [ + { + "settings": { + "method": "GET", + "path": "/pets" + }, + "actions": [ + { + "id": "microgateway:jwt" + } + ] + } + ] + } + ], + "resources": [ + { + "id": "microgateway:jwt", + "compressed": false, + "data": { + "name": "Pets", + "steps": [ + { + "service": "PetStorePets", + "input": { + "pathParams.petId": "1" + } + } + ], + "responses": [], + "services": [ + { + "name": "PetStorePets", + "description": "Get pets by ID from the petstore", + "ref": "github.com/project-flogo/contrib/activity/rest", + "settings": { + "uri": "https://petstore.swagger.io/v2/pet/:petId", + "method": "GET" + } + } + ] + } + } + ], + "actions": [ + { + "ref": "github.com/project-flogo/microgateway", + "settings": { + "uri": "microgateway:jwt" + }, + "id": "swaggertrigger", + "metadata": null + }, + { + "ref": "github.com/project-flogo/microgateway", + "settings": { + "uri": "microgateway:jwt" + }, + "id": "microgateway:jwt", + "metadata": null + } + ] +} \ No newline at end of file From c7550791ef4d5791bc9a227295e06afa0279e84d Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 09:30:25 -0800 Subject: [PATCH 42/87] added trigger info --- app/instances.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/instances.go b/app/instances.go index c7c2be4d..4e8aba87 100644 --- a/app/instances.go +++ b/app/instances.go @@ -50,8 +50,7 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( expressionFactory := expression.NewFactory(resolve.GetBasicResolver()) for _, tConfig := range tConfigs { - tConfig.AppConfig = map[string]interface{}{"Name": a.name, "Version": a.version, "Description": a.description, - "Trigger": make(map[string]interface{})} + tConfig.AppConfig = map[string]interface{}{"Name": a.name, "Version": a.version, "Description": a.description} _, exists := triggers[tConfig.Id] if exists { @@ -154,7 +153,7 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( } triggers[tConfig.Id] = &triggerWrapper{ref: tConfig.Ref, trg: trg, status: &managed.StatusInfo{Name: tConfig.Id}} - tConfig.AppConfig["Trigger"][tConfig.Id] = tConfig + tConfig.AppConfig["Trigger"] = map[string]interface{}{tConfig.Id.(string) : tConfig} } return triggers, nil } From 632973b59c48dffe3a02d7d022d24301dceb8c04 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 09:33:00 -0800 Subject: [PATCH 43/87] Added AppConfig in trigger-config - fix --- app/instances.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/instances.go b/app/instances.go index 4e8aba87..81f23534 100644 --- a/app/instances.go +++ b/app/instances.go @@ -153,7 +153,7 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( } triggers[tConfig.Id] = &triggerWrapper{ref: tConfig.Ref, trg: trg, status: &managed.StatusInfo{Name: tConfig.Id}} - tConfig.AppConfig["Trigger"] = map[string]interface{}{tConfig.Id.(string) : tConfig} + tConfig.AppConfig["Trigger"] = map[string]interface{}{tConfig.Id : tConfig} } return triggers, nil } From dd6197032eaed6ba611bb825456ffb50c6c2b93f Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 10:00:30 -0800 Subject: [PATCH 44/87] added trigger info --- app/instances.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/instances.go b/app/instances.go index 81f23534..e7d4bb39 100644 --- a/app/instances.go +++ b/app/instances.go @@ -50,7 +50,8 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( expressionFactory := expression.NewFactory(resolve.GetBasicResolver()) for _, tConfig := range tConfigs { - tConfig.AppConfig = map[string]interface{}{"Name": a.name, "Version": a.version, "Description": a.description} + tConfig.AppConfig = map[string]interface{}{"Name": a.name, "Version": a.version, "Description": a.description, + "Trigger": make(map[string]interface{})} _, exists := triggers[tConfig.Id] if exists { From 54de82d501bc4940e208550e17c8ddc77d05e3d9 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 11:09:28 -0800 Subject: [PATCH 45/87] add trigger info -1 --- app/instances.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/instances.go b/app/instances.go index e7d4bb39..309dc8fd 100644 --- a/app/instances.go +++ b/app/instances.go @@ -45,13 +45,13 @@ func (a *App) createSharedActions(actionConfigs []*action.Config) (map[string]ac func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) (map[string]*triggerWrapper, error) { triggers := make(map[string]*triggerWrapper) - + fmt.Println("Inside app :", a.triggers) mapperFactory := mapper.NewFactory(resolve.GetBasicResolver()) expressionFactory := expression.NewFactory(resolve.GetBasicResolver()) for _, tConfig := range tConfigs { tConfig.AppConfig = map[string]interface{}{"Name": a.name, "Version": a.version, "Description": a.description, - "Trigger": make(map[string]interface{})} + "Trigger": a.triggers} _, exists := triggers[tConfig.Id] if exists { @@ -154,7 +154,7 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( } triggers[tConfig.Id] = &triggerWrapper{ref: tConfig.Ref, trg: trg, status: &managed.StatusInfo{Name: tConfig.Id}} - tConfig.AppConfig["Trigger"] = map[string]interface{}{tConfig.Id : tConfig} + //tConfig.AppConfig["Trigger"] = map[string]interface{}{tConfig.Id : tConfig} } return triggers, nil } From c41607c06a9b25f4d13ccc4611a5e73a6dbdb169 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 11:14:10 -0800 Subject: [PATCH 46/87] Added AppConfig in trigger-config - fix --- app/instances.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/instances.go b/app/instances.go index 309dc8fd..5f67e7e7 100644 --- a/app/instances.go +++ b/app/instances.go @@ -45,13 +45,13 @@ func (a *App) createSharedActions(actionConfigs []*action.Config) (map[string]ac func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) (map[string]*triggerWrapper, error) { triggers := make(map[string]*triggerWrapper) - fmt.Println("Inside app :", a.triggers) + fmt.Println("%+v\n", tConfigs) mapperFactory := mapper.NewFactory(resolve.GetBasicResolver()) expressionFactory := expression.NewFactory(resolve.GetBasicResolver()) for _, tConfig := range tConfigs { tConfig.AppConfig = map[string]interface{}{"Name": a.name, "Version": a.version, "Description": a.description, - "Trigger": a.triggers} + "Trigger": tConfigs} _, exists := triggers[tConfig.Id] if exists { From 48f6fef68e8e66bba7d560529a4326dc596fbf74 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 11:19:51 -0800 Subject: [PATCH 47/87] code for multiple triggers --- swagger/activity.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 9a865dfd..caadf032 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -92,18 +92,19 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { var endpoints []Endpoint fmt.Println("details: \n") - fmt.Println("%+v\n", config.AppConfig["Trigger"]) - //var triggerMap = config.AppConfig["Trigger"] - //for _, trigger := range config.AppConfig["Trigger"] { - if config.Ref == "github.com/project-flogo/contrib/trigger/rest" || config.Ref == "github.com/project-flogo/core/swagger" { - for _, handler := range config.Handlers { + for _, tConfig := range config.AppConfig["Trigger"] { + fmt.Println("%+v\n", tConfig) + //var triggerMap = config.AppConfig["Trigger"] + //for _, trigger := range config.AppConfig["Trigger"] { + if tConfig.Ref == "github.com/project-flogo/contrib/trigger/rest" || tConfig.Ref == "github.com/project-flogo/core/swagger" { + for _, handler := range tConfig.Handlers { var endpoint Endpoint - endpoint.Name = config.Id + endpoint.Name = tConfig.Id endpoint.Method = handler.Settings["method"].(string) endpoint.Path = handler.Settings["path"].(string) - endpoint.Description = config.Settings["description"].(string) + endpoint.Description = tConfig.Settings["description"].(string) var beginDelim, endDelim rune - switch config.Ref { + switch tConfig.Ref { case "github.com/project-flogo/contrib/trigger/rest": beginDelim = ':' endDelim = '/' @@ -116,6 +117,7 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { endpoints = append(endpoints, endpoint) } } + } //} return Generate(hostname, config.AppConfig["Name"].(string), config.AppConfig["Version"].(string), config.AppConfig["Description"].(string), endpoints) } From 937baac2ede9cf1c43c279ba402060a9e9804aa5 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 11:22:02 -0800 Subject: [PATCH 48/87] fix -1 --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index caadf032..25ff1c1b 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -92,7 +92,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { var endpoints []Endpoint fmt.Println("details: \n") - for _, tConfig := range config.AppConfig["Trigger"] { + for _, tConfig := range config.AppConfig["Trigger"].([]*trigger.Config) { fmt.Println("%+v\n", tConfig) //var triggerMap = config.AppConfig["Trigger"] //for _, trigger := range config.AppConfig["Trigger"] { From 2ea3a28bd3ebd00947b03637cca1b8b82be8b926 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 11:31:18 -0800 Subject: [PATCH 49/87] Code clean --- app/instances.go | 2 -- swagger/activity.go | 5 ----- 2 files changed, 7 deletions(-) diff --git a/app/instances.go b/app/instances.go index 5f67e7e7..4d7daaae 100644 --- a/app/instances.go +++ b/app/instances.go @@ -45,7 +45,6 @@ func (a *App) createSharedActions(actionConfigs []*action.Config) (map[string]ac func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) (map[string]*triggerWrapper, error) { triggers := make(map[string]*triggerWrapper) - fmt.Println("%+v\n", tConfigs) mapperFactory := mapper.NewFactory(resolve.GetBasicResolver()) expressionFactory := expression.NewFactory(resolve.GetBasicResolver()) for _, tConfig := range tConfigs { @@ -154,7 +153,6 @@ func (a *App) createTriggers(tConfigs []*trigger.Config, runner action.Runner) ( } triggers[tConfig.Id] = &triggerWrapper{ref: tConfig.Ref, trg: trg, status: &managed.StatusInfo{Name: tConfig.Id}} - //tConfig.AppConfig["Trigger"] = map[string]interface{}{tConfig.Id : tConfig} } return triggers, nil } diff --git a/swagger/activity.go b/swagger/activity.go index 25ff1c1b..71195e6c 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -91,11 +91,7 @@ func (t *Trigger) Stop() error { func Swagger(hostname string, config *trigger.Config) ([]byte, error) { var endpoints []Endpoint - fmt.Println("details: \n") for _, tConfig := range config.AppConfig["Trigger"].([]*trigger.Config) { - fmt.Println("%+v\n", tConfig) - //var triggerMap = config.AppConfig["Trigger"] - //for _, trigger := range config.AppConfig["Trigger"] { if tConfig.Ref == "github.com/project-flogo/contrib/trigger/rest" || tConfig.Ref == "github.com/project-flogo/core/swagger" { for _, handler := range tConfig.Handlers { var endpoint Endpoint @@ -118,7 +114,6 @@ func Swagger(hostname string, config *trigger.Config) ([]byte, error) { } } } - //} return Generate(hostname, config.AppConfig["Name"].(string), config.AppConfig["Version"].(string), config.AppConfig["Description"].(string), endpoints) } From 6e78b614b859fd0d8daff879eafe6a9463dbb254 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 12:49:43 -0800 Subject: [PATCH 50/87] Added Hostname --- swagger/activity.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 71195e6c..0b75b53f 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -5,7 +5,7 @@ import( "io" "net/http" "strconv" - + "os" "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" @@ -47,8 +47,11 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { if len(port) == 0 { port = DefaultPort } - - response,_ := Swagger("hostname",config) + hostName, err := os.Hostname() + if err != nil { + return nil, err + } + response,_ := Swagger(hostName,config) mux := http.NewServeMux() server := &http.Server{ From deb6c9bc1bb8548115011f3fd27d7400b56e090a Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:03:28 -0800 Subject: [PATCH 51/87] Updated swagger-trigger --- swagger/activity.go | 58 ++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 0b75b53f..4cb865db 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -47,11 +47,6 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { if len(port) == 0 { port = DefaultPort } - hostName, err := os.Hostname() - if err != nil { - return nil, err - } - response,_ := Swagger(hostName,config) mux := http.NewServeMux() server := &http.Server{ @@ -61,16 +56,23 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { trigger := &Trigger{ metadata: f.Metadata(), config: config, - response: string(response), + response: "", Server: server, } - mux.HandleFunc("/swagger", trigger.SwaggerHandler) + mux.HandleFunc("/{triggerName}/swagger", trigger.SwaggerHandler) return trigger, nil } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - io.WriteString(w, t.response) + vars := t.Server.Handler.Vars(req) + hostName, err := os.Hostname() + if err != nil { + return nil, err + } + triggerName := vars["triggerName"] + response,_ := Swagger(hostName,t.config,triggerName) + io.WriteString(w, string(response)) } // Start implements util.Managed.Start @@ -92,28 +94,30 @@ func (t *Trigger) Stop() error { return nil } -func Swagger(hostname string, config *trigger.Config) ([]byte, error) { +func Swagger(hostname string, config *trigger.Config, triggerName string) ([]byte, error) { var endpoints []Endpoint for _, tConfig := range config.AppConfig["Trigger"].([]*trigger.Config) { - if tConfig.Ref == "github.com/project-flogo/contrib/trigger/rest" || tConfig.Ref == "github.com/project-flogo/core/swagger" { - for _, handler := range tConfig.Handlers { - var endpoint Endpoint - endpoint.Name = tConfig.Id - endpoint.Method = handler.Settings["method"].(string) - endpoint.Path = handler.Settings["path"].(string) - endpoint.Description = tConfig.Settings["description"].(string) - var beginDelim, endDelim rune - switch tConfig.Ref { - case "github.com/project-flogo/contrib/trigger/rest": - beginDelim = ':' - endDelim = '/' - default: - beginDelim = '{' - endDelim = '}' + if tConfig.Id == "" || tConfig.Id == triggerName { + if tConfig.Ref == "github.com/project-flogo/contrib/trigger/rest" || tConfig.Ref == "github.com/project-flogo/core/swagger" { + for _, handler := range tConfig.Handlers { + var endpoint Endpoint + endpoint.Name = tConfig.Id + endpoint.Method = handler.Settings["method"].(string) + endpoint.Path = handler.Settings["path"].(string) + endpoint.Description = tConfig.Settings["description"].(string) + var beginDelim, endDelim rune + switch tConfig.Ref { + case "github.com/project-flogo/contrib/trigger/rest": + beginDelim = ':' + endDelim = '/' + default: + beginDelim = '{' + endDelim = '}' + } + endpoint.BeginDelim = beginDelim + endpoint.EndDelim = endDelim + endpoints = append(endpoints, endpoint) } - endpoint.BeginDelim = beginDelim - endpoint.EndDelim = endDelim - endpoints = append(endpoints, endpoint) } } } From 565a44e45e5ee8ec29fe2cdb6123acd0032996cb Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:08:31 -0800 Subject: [PATCH 52/87] mux config --- swagger/activity.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 4cb865db..f0de9d5c 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -65,7 +65,8 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - vars := t.Server.Handler.Vars(req) + mux := t.Server.Handler + vars := mux.Vars(req) hostName, err := os.Hostname() if err != nil { return nil, err From 4e5e7b89a0f9a71184bc13348c8d538a4f5238b4 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:14:55 -0800 Subject: [PATCH 53/87] fix - 1 --- swagger/activity.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index f0de9d5c..c13f6328 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -65,11 +65,11 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - mux := t.Server.Handler + mux := t.Server["Handler"] vars := mux.Vars(req) hostName, err := os.Hostname() if err != nil { - return nil, err + fmt.Errorf("Error in getting hostname:", err) } triggerName := vars["triggerName"] response,_ := Swagger(hostName,t.config,triggerName) From 99fbc03428e444120f46a7eb229a3df7083b30f3 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:17:00 -0800 Subject: [PATCH 54/87] trace - 1 --- swagger/activity.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index c13f6328..7b3e6cff 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,20 +59,22 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } + fmt.Println("Server : ",trigger.Server) mux.HandleFunc("/{triggerName}/swagger", trigger.SwaggerHandler) return trigger, nil } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - mux := t.Server["Handler"] - vars := mux.Vars(req) + + //mux := t.Server["Handler"] + //vars := mux.Vars(req) hostName, err := os.Hostname() if err != nil { fmt.Errorf("Error in getting hostname:", err) } - triggerName := vars["triggerName"] - response,_ := Swagger(hostName,t.config,triggerName) + //triggerName := vars["triggerName"] + response,_ := Swagger(hostName,t.config,"hello") io.WriteString(w, string(response)) } From 0b897ad163f5f62b90840fa6caf11a3dfb993edc Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:21:33 -0800 Subject: [PATCH 55/87] Added AppConfig in trigger-config --- swagger/activity.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 7b3e6cff..6a42ce86 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,8 +59,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - fmt.Println("Server : ",trigger.Server) - mux.HandleFunc("/{triggerName}/swagger", trigger.SwaggerHandler) + mux.HandleFunc("/swagger", trigger.SwaggerHandler) return trigger, nil } @@ -69,6 +68,7 @@ func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { //mux := t.Server["Handler"] //vars := mux.Vars(req) + fmt.Println("%+v\n",trigger.Server) hostName, err := os.Hostname() if err != nil { fmt.Errorf("Error in getting hostname:", err) From 7891908069adeedcd2448750c33f6c300473535d Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:22:26 -0800 Subject: [PATCH 56/87] fix --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 6a42ce86..12aae9b9 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -68,7 +68,7 @@ func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { //mux := t.Server["Handler"] //vars := mux.Vars(req) - fmt.Println("%+v\n",trigger.Server) + fmt.Println("%+v\n",t.Server) hostName, err := os.Hostname() if err != nil { fmt.Errorf("Error in getting hostname:", err) From 970dce58b529793585c0d8eb9f18b3863af65234 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:24:35 -0800 Subject: [PATCH 57/87] Adding triggername --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 12aae9b9..20d6c739 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,7 +59,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - mux.HandleFunc("/swagger", trigger.SwaggerHandler) + mux.HandleFunc("/{triggerName}/swagger", trigger.SwaggerHandler) return trigger, nil } From b71349a77e2ec531e25fbfbe8cee394c271010ec Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:40:10 -0800 Subject: [PATCH 58/87] Added AppConfig in trigger-config --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 20d6c739..12aae9b9 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,7 +59,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - mux.HandleFunc("/{triggerName}/swagger", trigger.SwaggerHandler) + mux.HandleFunc("/swagger", trigger.SwaggerHandler) return trigger, nil } From 788409675588cc86a2e977e51b98f866bacac164 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:52:51 -0800 Subject: [PATCH 59/87] Added AppConfig in trigger-config --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 12aae9b9..b3bb2c9a 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,7 +59,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - mux.HandleFunc("/swagger", trigger.SwaggerHandler) + mux.HandleFunc("/{name}/swagger", trigger.SwaggerHandler) return trigger, nil } From ea925bd0c7679fd8ff647c89cf6abca3dbbf2c12 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 14:55:13 -0800 Subject: [PATCH 60/87] Added AppConfig in trigger-config --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index b3bb2c9a..2e9f6dd8 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,7 +59,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - mux.HandleFunc("/{name}/swagger", trigger.SwaggerHandler) + mux.HandleFunc("/swagger/{name}", trigger.SwaggerHandler) return trigger, nil } From fad5366c98a9db44a8db04cb35e667ee0280a212 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:00:26 -0800 Subject: [PATCH 61/87] Added AppConfig in trigger-config --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 2e9f6dd8..ab528f54 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,7 +59,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - mux.HandleFunc("/swagger/{name}", trigger.SwaggerHandler) + mux.HandleFunc("/swagger/", trigger.SwaggerHandler) return trigger, nil } From 3e7210f64294c932faf988dc59567f0992b0d0fa Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:02:02 -0800 Subject: [PATCH 62/87] dynamic path --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index ab528f54..fae5ab8b 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,7 +59,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - mux.HandleFunc("/swagger/", trigger.SwaggerHandler) + mux.HandleFunc("//swagger", trigger.SwaggerHandler) return trigger, nil } From 82aef9317e364c83eb7b2368b80eec1364f737fe Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:24:05 -0800 Subject: [PATCH 63/87] fix --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index fae5ab8b..783462a3 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -59,7 +59,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - mux.HandleFunc("//swagger", trigger.SwaggerHandler) + mux.HandleFunc(`/$/swagger/`, trigger.SwaggerHandler) return trigger, nil } From 479e39ae8b9b625492c82c6c8515ec546dcae9b8 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:39:52 -0800 Subject: [PATCH 64/87] added mux lib --- swagger/activity.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 783462a3..8d0716a0 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -9,6 +9,7 @@ import( "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" + "github.com/gorilla/mux" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) @@ -48,10 +49,11 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { port = DefaultPort } - mux := http.NewServeMux() + //mux := http.NewServeMux() + newMux := mux.NewRouter() server := &http.Server{ Addr: ":" + port, - Handler: mux, + Handler: newMux, } trigger := &Trigger{ metadata: f.Metadata(), @@ -59,7 +61,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - mux.HandleFunc(`/$/swagger/`, trigger.SwaggerHandler) + newMux.HandleFunc("/{triggerName}/swagger/", trigger.SwaggerHandler) return trigger, nil } From 019470970e742af00e21a4c3146703dc952f8424 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:42:08 -0800 Subject: [PATCH 65/87] fix --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 8d0716a0..b9d88861 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -61,7 +61,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - newMux.HandleFunc("/{triggerName}/swagger/", trigger.SwaggerHandler) + newMux.HandleFunc("/{triggerName}/swagger", trigger.SwaggerHandler) return trigger, nil } From 6c2e9b8c93351c87ef30a80a706ed03e8d67c2bf Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:45:27 -0800 Subject: [PATCH 66/87] added handler --- swagger/activity.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index b9d88861..74782009 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -68,9 +68,9 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - //mux := t.Server["Handler"] - //vars := mux.Vars(req) - fmt.Println("%+v\n",t.Server) + mux := t.Server.Handler + vars := mux.Vars("triggerName") + fmt.Println(vars) hostName, err := os.Hostname() if err != nil { fmt.Errorf("Error in getting hostname:", err) From 523831a2a2deeb2238759bda50f307049b0d5bfe Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:48:36 -0800 Subject: [PATCH 67/87] getting triggername --- swagger/activity.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 74782009..cf7edc00 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -67,16 +67,14 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - - mux := t.Server.Handler - vars := mux.Vars("triggerName") - fmt.Println(vars) + vars := mux.Vars(req) + fmt.Println(vars["triggerName"]) hostName, err := os.Hostname() if err != nil { fmt.Errorf("Error in getting hostname:", err) } - //triggerName := vars["triggerName"] - response,_ := Swagger(hostName,t.config,"hello") + triggerName := vars["triggerName"] + response,_ := Swagger(hostName,t.config,triggerName) io.WriteString(w, string(response)) } From 39886153a537d2c784c4adb7ee32944a9f1cbe32 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:51:07 -0800 Subject: [PATCH 68/87] code clean --- swagger/activity.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index cf7edc00..e7f88f3c 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -68,13 +68,12 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { vars := mux.Vars(req) - fmt.Println(vars["triggerName"]) hostName, err := os.Hostname() if err != nil { fmt.Errorf("Error in getting hostname:", err) } triggerName := vars["triggerName"] - response,_ := Swagger(hostName,t.config,triggerName) + response,_ := Swagger(hostName+t.Server.Addr,t.config,triggerName) io.WriteString(w, string(response)) } From 5b67c97fb33665e47b2a7b59ca56de685ac5028b Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:55:19 -0800 Subject: [PATCH 69/87] code clean --- swagger/activity.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index e7f88f3c..a4d78f7f 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -73,7 +73,7 @@ func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { fmt.Errorf("Error in getting hostname:", err) } triggerName := vars["triggerName"] - response,_ := Swagger(hostName+t.Server.Addr,t.config,triggerName) + response,_ := Swagger(hostName,t.config,triggerName) io.WriteString(w, string(response)) } @@ -123,7 +123,7 @@ func Swagger(hostname string, config *trigger.Config, triggerName string) ([]byt } } } - return Generate(hostname, config.AppConfig["Name"].(string), config.AppConfig["Version"].(string), config.AppConfig["Description"].(string), endpoints) + return Generate(hostname+tConfig.Settings["port"].(string), config.AppConfig["Name"].(string), config.AppConfig["Version"].(string), config.AppConfig["Description"].(string), endpoints) } From 0cc810d2070eff451e790672dbb3e15c6333284f Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:58:02 -0800 Subject: [PATCH 70/87] code clean --- swagger/activity.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index a4d78f7f..d3f82068 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -107,6 +107,7 @@ func Swagger(hostname string, config *trigger.Config, triggerName string) ([]byt endpoint.Method = handler.Settings["method"].(string) endpoint.Path = handler.Settings["path"].(string) endpoint.Description = tConfig.Settings["description"].(string) + hostname = hostname + tConfig.Settings["port"].(string) var beginDelim, endDelim rune switch tConfig.Ref { case "github.com/project-flogo/contrib/trigger/rest": @@ -123,7 +124,7 @@ func Swagger(hostname string, config *trigger.Config, triggerName string) ([]byt } } } - return Generate(hostname+tConfig.Settings["port"].(string), config.AppConfig["Name"].(string), config.AppConfig["Version"].(string), config.AppConfig["Description"].(string), endpoints) + return Generate(hostname, config.AppConfig["Name"].(string), config.AppConfig["Version"].(string), config.AppConfig["Description"].(string), endpoints) } From 49273766ebe0eebc9956aceb1de5000e16a22c86 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 15:59:33 -0800 Subject: [PATCH 71/87] code clean --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index d3f82068..1676c3a4 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -107,7 +107,7 @@ func Swagger(hostname string, config *trigger.Config, triggerName string) ([]byt endpoint.Method = handler.Settings["method"].(string) endpoint.Path = handler.Settings["path"].(string) endpoint.Description = tConfig.Settings["description"].(string) - hostname = hostname + tConfig.Settings["port"].(string) + hostname = hostname + tConfig.Settings["port"].(int) var beginDelim, endDelim rune switch tConfig.Ref { case "github.com/project-flogo/contrib/trigger/rest": From 6e4e00fe3d8f16da761ba23b3c29dbc7016f9f3e Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 16:02:33 -0800 Subject: [PATCH 72/87] Code clean --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 1676c3a4..022f346a 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -107,7 +107,7 @@ func Swagger(hostname string, config *trigger.Config, triggerName string) ([]byt endpoint.Method = handler.Settings["method"].(string) endpoint.Path = handler.Settings["path"].(string) endpoint.Description = tConfig.Settings["description"].(string) - hostname = hostname + tConfig.Settings["port"].(int) + hostname = hostname + strconv.Itoa(tConfig.Settings["port"].(int)) var beginDelim, endDelim rune switch tConfig.Ref { case "github.com/project-flogo/contrib/trigger/rest": From 26aafdc064e12f6b45c95cf35ee8ab7d306b3499 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 16:10:54 -0800 Subject: [PATCH 73/87] Added Readme --- swagger/activity.go | 2 +- swagger/examples/swagger/README.md | 92 +++++++++++++++++++++++++++++ swagger/examples/swagger/flogo.json | 2 +- 3 files changed, 94 insertions(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 022f346a..8789b7bc 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -107,7 +107,7 @@ func Swagger(hostname string, config *trigger.Config, triggerName string) ([]byt endpoint.Method = handler.Settings["method"].(string) endpoint.Path = handler.Settings["path"].(string) endpoint.Description = tConfig.Settings["description"].(string) - hostname = hostname + strconv.Itoa(tConfig.Settings["port"].(int)) + hostname = hostname + ": "+strconv.Itoa(tConfig.Settings["port"].(int)) var beginDelim, endDelim rune switch tConfig.Ref { case "github.com/project-flogo/contrib/trigger/rest": diff --git a/swagger/examples/swagger/README.md b/swagger/examples/swagger/README.md index e69de29b..73106538 100644 --- a/swagger/examples/swagger/README.md +++ b/swagger/examples/swagger/README.md @@ -0,0 +1,92 @@ +# Swagger Feature Example + +## Install + +To install run the following commands: +``` +flogo create -f flogo.json +cd swagger +flogo build +``` + +## Testing + +Run: +``` +bin/swagger +``` + +Then open another terminal and run: +``` +### Format : curl http://localhost:1234//swagger ### + +curl http://localhost:1234/swagdocs/swagger +``` + +You should then see something like: +``` +{ + "host": "Temporarys-MacBook-Pro.local: 1234", + "info": { + "description": "1.0.0", + "title": "swagger", + "version": "This is a simple proxy." + }, + "paths": { + "/swagger": { + "get": { + "description": "Simple swagger doc Trigger", + "parameters": [], + "responses": { + "200": { + "description": "Simple swagger doc Trigger" + }, + "default": { + "description": "error" + } + }, + "tags": [ + "swagdocs" + ] + } + } + }, + "swagger": "2.0" +} +``` +##### +``` +curl http://localhost:1234/MyProxy/swagger +``` + +You should then see something like: +``` +{ + "host": "Temporarys-MacBook-Pro.local: 9096", + "info": { + "description": "1.0.0", + "title": "swagger", + "version": "This is a simple proxy." + }, + "paths": { + "/pets": { + "get": { + "description": "Simple REST Trigger", + "parameters": [], + "responses": { + "200": { + "description": "Simple REST Trigger" + }, + "default": { + "description": "error" + } + }, + "tags": [ + "MyProxy" + ] + } + } + }, + "swagger": "2.0" +} +``` diff --git a/swagger/examples/swagger/flogo.json b/swagger/examples/swagger/flogo.json index aa0780e5..354055c0 100644 --- a/swagger/examples/swagger/flogo.json +++ b/swagger/examples/swagger/flogo.json @@ -18,7 +18,7 @@ { "settings": { "method": "GET", - "path": "/swagger" + "path": "//swagger" }, "actions": [ { From 8d523d60a4814a134734032e86a6b6632ce2af46 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 8 Nov 2018 16:16:42 -0800 Subject: [PATCH 74/87] Code clean --- swagger/examples/swagger/flogo.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/examples/swagger/flogo.json b/swagger/examples/swagger/flogo.json index 354055c0..6f3716db 100644 --- a/swagger/examples/swagger/flogo.json +++ b/swagger/examples/swagger/flogo.json @@ -18,7 +18,7 @@ { "settings": { "method": "GET", - "path": "//swagger" + "path": "/{triggerName}/swagger" }, "actions": [ { From 49cf2456413d1c0516fadc39da26da76aea0d1d5 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 11:35:14 -0800 Subject: [PATCH 75/87] Removed gorilla lib and added replacement code --- swagger/activity.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 8789b7bc..65cfdc16 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -5,11 +5,11 @@ import( "io" "net/http" "strconv" + "strings" "os" "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" - "github.com/gorilla/mux" ) var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) @@ -49,11 +49,10 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { port = DefaultPort } - //mux := http.NewServeMux() - newMux := mux.NewRouter() + mux := http.NewServeMux() server := &http.Server{ Addr: ":" + port, - Handler: newMux, + Handler: mux, } trigger := &Trigger{ metadata: f.Metadata(), @@ -61,18 +60,20 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { response: "", Server: server, } - newMux.HandleFunc("/{triggerName}/swagger", trigger.SwaggerHandler) - + mux.HandleFunc("/swagger/", trigger.SwaggerHandler) return trigger, nil } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - vars := mux.Vars(req) + vars := strings.Split(req.URL.Path, '/') + if(vars == nil || vars[2] == nil || len(vars) > 2){ + fmt.Errorf("Error in URL:") + } + triggerName := vars[2] hostName, err := os.Hostname() if err != nil { fmt.Errorf("Error in getting hostname:", err) } - triggerName := vars["triggerName"] response,_ := Swagger(hostName,t.config,triggerName) io.WriteString(w, string(response)) } From cec571c1489b49157e322feaad8692f319e7e7f9 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 11:39:16 -0800 Subject: [PATCH 76/87] Changed endpoint URL --- swagger/activity.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 65cfdc16..646d8e5e 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -65,8 +65,8 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - vars := strings.Split(req.URL.Path, '/') - if(vars == nil || vars[2] == nil || len(vars) > 2){ + vars := strings.Split(req.URL.Path, "/") + if(vars == nil || vars[2] == "" || len(vars) > 2){ fmt.Errorf("Error in URL:") } triggerName := vars[2] From ed381891d19df5a8e92656d852eda6c496654366 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 13:09:05 -0800 Subject: [PATCH 77/87] Regex to check URL and get trigger name --- swagger/activity.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 646d8e5e..1a12095a 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -7,6 +7,7 @@ import( "strconv" "strings" "os" + "regexp" "github.com/project-flogo/core/data/metadata" "github.com/project-flogo/core/support/log" "github.com/project-flogo/core/trigger" @@ -65,16 +66,19 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - vars := strings.Split(req.URL.Path, "/") - if(vars == nil || vars[2] == "" || len(vars) > 2){ - fmt.Errorf("Error in URL:") - } - triggerName := vars[2] - hostName, err := os.Hostname() - if err != nil { - fmt.Errorf("Error in getting hostname:", err) + var response string + match, _ := regexp.MatchString("/swagger[/]?[A-Za-z0-9]*$", req.URL.Path) + if(match) { + vars := strings.Split(req.URL.Path, "/") + triggerName := vars[2] + hostName, err := os.Hostname() + if err != nil { + fmt.Errorf("Error in getting hostname:", err) + } + response, _ = Swagger(hostName, t.config, triggerName) + }else{ + response = "404 page not found" } - response,_ := Swagger(hostName,t.config,triggerName) io.WriteString(w, string(response)) } From 715d3d5d7a89978c66d3da2e1073d304bcc70974 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 13:12:57 -0800 Subject: [PATCH 78/87] Code clean --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 1a12095a..14800579 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -66,7 +66,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { } func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - var response string + var response []byte match, _ := regexp.MatchString("/swagger[/]?[A-Za-z0-9]*$", req.URL.Path) if(match) { vars := strings.Split(req.URL.Path, "/") From 513da108e461e401e2d446f3ff7a97561d934e69 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 13:16:45 -0800 Subject: [PATCH 79/87] Code clean and Updated Readme --- swagger/activity.go | 2 +- swagger/examples/swagger/README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 14800579..aa6145e4 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -77,7 +77,7 @@ func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { } response, _ = Swagger(hostName, t.config, triggerName) }else{ - response = "404 page not found" + response = []byte("404 page not found") } io.WriteString(w, string(response)) } diff --git a/swagger/examples/swagger/README.md b/swagger/examples/swagger/README.md index 73106538..45b0f573 100644 --- a/swagger/examples/swagger/README.md +++ b/swagger/examples/swagger/README.md @@ -18,9 +18,9 @@ bin/swagger Then open another terminal and run: ``` -### Format : curl http://localhost:1234//swagger ### +### Format : curl http://localhost:1234/swagger/ ### -curl http://localhost:1234/swagdocs/swagger +curl http://localhost:1234/swagger/swagdocs ``` You should then see something like: @@ -56,7 +56,7 @@ You should then see something like: ``` ##### ``` -curl http://localhost:1234/MyProxy/swagger +curl http://localhost:1234/swagger/MyProxy ``` You should then see something like: From b3b1dcb530233c7b16112d2949f13bb960a51c84 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 13:31:24 -0800 Subject: [PATCH 80/87] Added default handler for swagger --- swagger/activity.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index aa6145e4..13b85d3a 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -62,12 +62,22 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { Server: server, } mux.HandleFunc("/swagger/", trigger.SwaggerHandler) + mux.HandleFunc("/swagger", trigger.DefaultSwaggerHandler) return trigger, nil } +func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { + hostName, err := os.Hostname() + if err != nil { + fmt.Errorf("Error in getting hostname:", err) + } + response, _ := Swagger(hostName, t.config, "") + io.WriteString(w, string(response)) +} + func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { var response []byte - match, _ := regexp.MatchString("/swagger[/]?[A-Za-z0-9]*$", req.URL.Path) + match, _ := regexp.MatchString("/swagger/[A-Za-z0-9]+$", req.URL.Path) if(match) { vars := strings.Split(req.URL.Path, "/") triggerName := vars[2] From 8fddfca5e0feecadeff6d340f6f822d2509fc9f0 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 13:32:13 -0800 Subject: [PATCH 81/87] Added default handler for swagger --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 13b85d3a..4cff4c55 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -66,7 +66,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { return trigger, nil } -func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { +func (t *Trigger) DefaultSwaggerHandler(w http.ResponseWriter, req *http.Request) { hostName, err := os.Hostname() if err != nil { fmt.Errorf("Error in getting hostname:", err) From 2f11a5ab57af981694218af22933412ce9db74d6 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 13:38:42 -0800 Subject: [PATCH 82/87] code clean --- swagger/activity.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/swagger/activity.go b/swagger/activity.go index 4cff4c55..2a737556 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -69,7 +69,7 @@ func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { func (t *Trigger) DefaultSwaggerHandler(w http.ResponseWriter, req *http.Request) { hostName, err := os.Hostname() if err != nil { - fmt.Errorf("Error in getting hostname:", err) + fmt.Errorf("Error in getting hostname: ", err) } response, _ := Swagger(hostName, t.config, "") io.WriteString(w, string(response)) @@ -77,17 +77,17 @@ func (t *Trigger) DefaultSwaggerHandler(w http.ResponseWriter, req *http.Request func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { var response []byte - match, _ := regexp.MatchString("/swagger/[A-Za-z0-9]+$", req.URL.Path) + match, _ := regexp.MatchString("/swagger/[A-Za-z0-9]$", req.URL.Path) if(match) { vars := strings.Split(req.URL.Path, "/") triggerName := vars[2] hostName, err := os.Hostname() if err != nil { - fmt.Errorf("Error in getting hostname:", err) + fmt.Errorf("Error in getting hostname: ", err) } response, _ = Swagger(hostName, t.config, triggerName) }else{ - response = []byte("404 page not found") + response = []byte("404 page not found\n") } io.WriteString(w, string(response)) } From 6be2f6afdaef272c1cde402524177550b7b76059 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 13:41:15 -0800 Subject: [PATCH 83/87] code clean --- swagger/activity.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swagger/activity.go b/swagger/activity.go index 2a737556..f80356e9 100644 --- a/swagger/activity.go +++ b/swagger/activity.go @@ -77,7 +77,7 @@ func (t *Trigger) DefaultSwaggerHandler(w http.ResponseWriter, req *http.Request func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { var response []byte - match, _ := regexp.MatchString("/swagger/[A-Za-z0-9]$", req.URL.Path) + match, _ := regexp.MatchString("/swagger/[A-Za-z0-9]+$", req.URL.Path) if(match) { vars := strings.Split(req.URL.Path, "/") triggerName := vars[2] From a75e0ef3390fe1155ae13f17a5445571a841dadd Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 9 Nov 2018 14:05:51 -0800 Subject: [PATCH 84/87] remove swagger feature :- move to contrib --- swagger/activity.go | 148 -------------------- swagger/examples/swagger/README.md | 92 ------------ swagger/examples/swagger/flogo.json | 101 ------------- swagger/examples/swagger/swagger/flogo.json | 101 ------------- swagger/metadata.go | 22 --- swagger/swagger.go | 75 ---------- 6 files changed, 539 deletions(-) delete mode 100644 swagger/activity.go delete mode 100644 swagger/examples/swagger/README.md delete mode 100644 swagger/examples/swagger/flogo.json delete mode 100644 swagger/examples/swagger/swagger/flogo.json delete mode 100644 swagger/metadata.go delete mode 100644 swagger/swagger.go diff --git a/swagger/activity.go b/swagger/activity.go deleted file mode 100644 index f80356e9..00000000 --- a/swagger/activity.go +++ /dev/null @@ -1,148 +0,0 @@ -package swagger - -import( - "fmt" - "io" - "net/http" - "strconv" - "strings" - "os" - "regexp" - "github.com/project-flogo/core/data/metadata" - "github.com/project-flogo/core/support/log" - "github.com/project-flogo/core/trigger" -) - -var triggerMd = trigger.NewMetadata(&Settings{}, &HandlerSettings{}) -const DefaultPort = "9096" - -func init() { - trigger.Register(&Trigger{}, &Factory{}) -} - -type Factory struct { -} - -// Metadata implements trigger.Factory.Metadata -func (*Factory) Metadata() *trigger.Metadata { - return triggerMd -} - -// Trigger is the swagger trigger -type Trigger struct { - metadata *trigger.Metadata - settings *Settings - config *trigger.Config - Server *http.Server - logger log.Logger - response string -} - -// New implements trigger.Factory.New -func (f *Factory) New(config *trigger.Config) (trigger.Trigger, error) { - s := &Settings{} - err := metadata.MapToStruct(config.Settings, s, true) - if err != nil { - return nil, err - } - port := strconv.Itoa(config.Settings["port"].(int)) - if len(port) == 0 { - port = DefaultPort - } - - mux := http.NewServeMux() - server := &http.Server{ - Addr: ":" + port, - Handler: mux, - } - trigger := &Trigger{ - metadata: f.Metadata(), - config: config, - response: "", - Server: server, - } - mux.HandleFunc("/swagger/", trigger.SwaggerHandler) - mux.HandleFunc("/swagger", trigger.DefaultSwaggerHandler) - return trigger, nil -} - -func (t *Trigger) DefaultSwaggerHandler(w http.ResponseWriter, req *http.Request) { - hostName, err := os.Hostname() - if err != nil { - fmt.Errorf("Error in getting hostname: ", err) - } - response, _ := Swagger(hostName, t.config, "") - io.WriteString(w, string(response)) -} - -func (t *Trigger) SwaggerHandler(w http.ResponseWriter, req *http.Request) { - var response []byte - match, _ := regexp.MatchString("/swagger/[A-Za-z0-9]+$", req.URL.Path) - if(match) { - vars := strings.Split(req.URL.Path, "/") - triggerName := vars[2] - hostName, err := os.Hostname() - if err != nil { - fmt.Errorf("Error in getting hostname: ", err) - } - response, _ = Swagger(hostName, t.config, triggerName) - }else{ - response = []byte("404 page not found\n") - } - io.WriteString(w, string(response)) -} - -// Start implements util.Managed.Start -func (t *Trigger) Start() error { - go func() { - if err := t.Server.ListenAndServe(); err != http.ErrServerClosed { - fmt.Errorf("Ping service err:", err) - } - }() - return nil -} - -// Stop implements util.Managed.Stop -func (t *Trigger) Stop() error { - if err := t.Server.Shutdown(nil); err != nil { - fmt.Errorf("[mashling-ping-service] Ping service error when stopping:", err) - return err - } - return nil -} - -func Swagger(hostname string, config *trigger.Config, triggerName string) ([]byte, error) { - var endpoints []Endpoint - for _, tConfig := range config.AppConfig["Trigger"].([]*trigger.Config) { - if tConfig.Id == "" || tConfig.Id == triggerName { - if tConfig.Ref == "github.com/project-flogo/contrib/trigger/rest" || tConfig.Ref == "github.com/project-flogo/core/swagger" { - for _, handler := range tConfig.Handlers { - var endpoint Endpoint - endpoint.Name = tConfig.Id - endpoint.Method = handler.Settings["method"].(string) - endpoint.Path = handler.Settings["path"].(string) - endpoint.Description = tConfig.Settings["description"].(string) - hostname = hostname + ": "+strconv.Itoa(tConfig.Settings["port"].(int)) - var beginDelim, endDelim rune - switch tConfig.Ref { - case "github.com/project-flogo/contrib/trigger/rest": - beginDelim = ':' - endDelim = '/' - default: - beginDelim = '{' - endDelim = '}' - } - endpoint.BeginDelim = beginDelim - endpoint.EndDelim = endDelim - endpoints = append(endpoints, endpoint) - } - } - } - } - return Generate(hostname, config.AppConfig["Name"].(string), config.AppConfig["Version"].(string), config.AppConfig["Description"].(string), endpoints) -} - - -func (t *Trigger) Initialize(ctx trigger.InitContext) error { - return nil -} \ No newline at end of file diff --git a/swagger/examples/swagger/README.md b/swagger/examples/swagger/README.md deleted file mode 100644 index 45b0f573..00000000 --- a/swagger/examples/swagger/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# Swagger Feature Example - -## Install - -To install run the following commands: -``` -flogo create -f flogo.json -cd swagger -flogo build -``` - -## Testing - -Run: -``` -bin/swagger -``` - -Then open another terminal and run: -``` -### Format : curl http://localhost:1234/swagger/ ### - -curl http://localhost:1234/swagger/swagdocs -``` - -You should then see something like: -``` -{ - "host": "Temporarys-MacBook-Pro.local: 1234", - "info": { - "description": "1.0.0", - "title": "swagger", - "version": "This is a simple proxy." - }, - "paths": { - "/swagger": { - "get": { - "description": "Simple swagger doc Trigger", - "parameters": [], - "responses": { - "200": { - "description": "Simple swagger doc Trigger" - }, - "default": { - "description": "error" - } - }, - "tags": [ - "swagdocs" - ] - } - } - }, - "swagger": "2.0" -} -``` -##### -``` -curl http://localhost:1234/swagger/MyProxy -``` - -You should then see something like: -``` -{ - "host": "Temporarys-MacBook-Pro.local: 9096", - "info": { - "description": "1.0.0", - "title": "swagger", - "version": "This is a simple proxy." - }, - "paths": { - "/pets": { - "get": { - "description": "Simple REST Trigger", - "parameters": [], - "responses": { - "200": { - "description": "Simple REST Trigger" - }, - "default": { - "description": "error" - } - }, - "tags": [ - "MyProxy" - ] - } - } - }, - "swagger": "2.0" -} -``` diff --git a/swagger/examples/swagger/flogo.json b/swagger/examples/swagger/flogo.json deleted file mode 100644 index 6f3716db..00000000 --- a/swagger/examples/swagger/flogo.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "name": "swagger", - "type": "flogo:app", - "version": "1.0.0", - "description": "This is a simple proxy.", - "properties": null, - "channels": null, - "triggers": [ - { - "name": "swagger", - "id": "swagdocs", - "ref": "github.com/project-flogo/core/swagger", - "settings": { - "port": "1234", - "description": "Simple swagger doc Trigger" - }, - "handlers": [ - { - "settings": { - "method": "GET", - "path": "/{triggerName}/swagger" - }, - "actions": [ - { - "id": "swaggertrigger" - } - ] - } - ] - }, - { - "name": "flogo-rest", - "id": "MyProxy", - "ref": "github.com/project-flogo/contrib/trigger/rest", - "settings": { - "port": "9096", - "description": "Simple REST Trigger" - }, - "handlers": [ - { - "settings": { - "method": "GET", - "path": "/pets" - }, - "actions": [ - { - "id": "microgateway:jwt" - } - ] - } - ] - } - ], - "resources": [ - { - "id": "microgateway:jwt", - "compressed": false, - "data": { - "name": "Pets", - "steps": [ - { - "service": "PetStorePets", - "input": { - "pathParams.petId": "1" - } - } - ], - "responses": [], - "services": [ - { - "name": "PetStorePets", - "description": "Get pets by ID from the petstore", - "ref": "github.com/project-flogo/contrib/activity/rest", - "settings": { - "uri": "https://petstore.swagger.io/v2/pet/:petId", - "method": "GET" - } - } - ] - } - } - ], - "actions": [ - { - "ref": "github.com/project-flogo/microgateway", - "settings": { - "uri": "microgateway:jwt" - }, - "id": "swaggertrigger", - "metadata": null - }, - { - "ref": "github.com/project-flogo/microgateway", - "settings": { - "uri": "microgateway:jwt" - }, - "id": "microgateway:jwt", - "metadata": null - } - ] -} \ No newline at end of file diff --git a/swagger/examples/swagger/swagger/flogo.json b/swagger/examples/swagger/swagger/flogo.json deleted file mode 100644 index aa0780e5..00000000 --- a/swagger/examples/swagger/swagger/flogo.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "name": "swagger", - "type": "flogo:app", - "version": "1.0.0", - "description": "This is a simple proxy.", - "properties": null, - "channels": null, - "triggers": [ - { - "name": "swagger", - "id": "swagdocs", - "ref": "github.com/project-flogo/core/swagger", - "settings": { - "port": "1234", - "description": "Simple swagger doc Trigger" - }, - "handlers": [ - { - "settings": { - "method": "GET", - "path": "/swagger" - }, - "actions": [ - { - "id": "swaggertrigger" - } - ] - } - ] - }, - { - "name": "flogo-rest", - "id": "MyProxy", - "ref": "github.com/project-flogo/contrib/trigger/rest", - "settings": { - "port": "9096", - "description": "Simple REST Trigger" - }, - "handlers": [ - { - "settings": { - "method": "GET", - "path": "/pets" - }, - "actions": [ - { - "id": "microgateway:jwt" - } - ] - } - ] - } - ], - "resources": [ - { - "id": "microgateway:jwt", - "compressed": false, - "data": { - "name": "Pets", - "steps": [ - { - "service": "PetStorePets", - "input": { - "pathParams.petId": "1" - } - } - ], - "responses": [], - "services": [ - { - "name": "PetStorePets", - "description": "Get pets by ID from the petstore", - "ref": "github.com/project-flogo/contrib/activity/rest", - "settings": { - "uri": "https://petstore.swagger.io/v2/pet/:petId", - "method": "GET" - } - } - ] - } - } - ], - "actions": [ - { - "ref": "github.com/project-flogo/microgateway", - "settings": { - "uri": "microgateway:jwt" - }, - "id": "swaggertrigger", - "metadata": null - }, - { - "ref": "github.com/project-flogo/microgateway", - "settings": { - "uri": "microgateway:jwt" - }, - "id": "microgateway:jwt", - "metadata": null - } - ] -} \ No newline at end of file diff --git a/swagger/metadata.go b/swagger/metadata.go deleted file mode 100644 index ae18dad5..00000000 --- a/swagger/metadata.go +++ /dev/null @@ -1,22 +0,0 @@ -package swagger - - -// Endpoint represents an endpoint in a Swagger 2.0 document. -type Endpoint struct { - Name string `md:"name"` - Description string `md:"description"` - Path string `md:"path"` - Method string `md:"method"` - BeginDelim rune `md:"begin_delim"` - EndDelim rune `md:"end_delim"` -} - - -type Settings struct { - Port int `md:"port,required"` -} - -type HandlerSettings struct { - Method string `md:"method,required,allowed(GET,POST,PUT,PATCH,DELETE)"` - Path string `md:"path,required"` -} diff --git a/swagger/swagger.go b/swagger/swagger.go deleted file mode 100644 index dea49b42..00000000 --- a/swagger/swagger.go +++ /dev/null @@ -1,75 +0,0 @@ -package swagger - -import ( - "bytes" - "encoding/json" - "fmt" - "strings" -) - -// Generate generates a Swagger 2.0 document based off of the provided endpoints. -func Generate(host string, name string, description string, version string, endpoints []Endpoint) ([]byte, error) { - paths := map[string]interface{}{} - - for _, endpoint := range endpoints { - path := map[string]interface{}{} - parameters, scrubbedPath := swaggerParametersExtractor(endpoint.Path, endpoint.BeginDelim, endpoint.EndDelim) - ok := map[string]interface{}{ - "description": endpoint.Description, - } - path[strings.ToLower(endpoint.Method)] = map[string]interface{}{ - "description": endpoint.Description, - "tags": []interface{}{endpoint.Name}, - "parameters": parameters, - "responses": map[string]interface{}{ - "200": ok, - "default": map[string]interface{}{ - "description": "error", - }, - }, - } - paths[scrubbedPath] = path - } - - swagger := map[string]interface{}{ - "swagger": "2.0", - "info": map[string]interface{}{ - "version": version, - "title": name, - "description": description, - }, - "host": host, - "paths": paths, - } - docs, err := json.MarshalIndent(&swagger, "", " ") - if err != nil { - return nil, err - } - return docs, err -} - -func swaggerParametersExtractor(path string, beginDelim rune, endDelim rune) ([]interface{}, string) { - parameters := []interface{}{} - routePath := []rune(path) - for i := 0; i < len(routePath); i++ { - if routePath[i] == beginDelim { - key := bytes.Buffer{} - for i++; i < len(routePath) && routePath[i] != endDelim; i++ { - if routePath[i] != ' ' && routePath[i] != '\t' { - key.WriteRune(routePath[i]) - } - } - if beginDelim == ':' { - path = strings.Replace(path, fmt.Sprintf(":%s", key.String()), fmt.Sprintf("{%s}", key.String()), 1) - } - parameter := map[string]interface{}{ - "name": key.String(), - "in": "path", - "required": true, - "type": "string", - } - parameters = append(parameters, parameter) - } - } - return parameters, path -} From f99c116288d5d5075247fda3a55d451bd27de849 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 15 Nov 2018 12:51:29 -0800 Subject: [PATCH 85/87] Added Config : action.Config --- trigger/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trigger/config.go b/trigger/config.go index 09e3bea5..85146a29 100644 --- a/trigger/config.go +++ b/trigger/config.go @@ -90,7 +90,7 @@ func (hc *HandlerConfig) UnmarshalJSON(d []byte) error { // ActionConfig is the configuration for the Action type ActionConfig struct { - *action.Config + Config *action.Config If string `json:"if,omitempty"` Input map[string]interface{} `json:"input,omitempty"` Output map[string]interface{} `json:"output,omitempty"` From 167284c71f023af6c6ca1d78f75c1009b07b7dbc Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Thu, 15 Nov 2018 12:56:49 -0800 Subject: [PATCH 86/87] Added Config : action.Config --- trigger/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/trigger/config.go b/trigger/config.go index 85146a29..09e3bea5 100644 --- a/trigger/config.go +++ b/trigger/config.go @@ -90,7 +90,7 @@ func (hc *HandlerConfig) UnmarshalJSON(d []byte) error { // ActionConfig is the configuration for the Action type ActionConfig struct { - Config *action.Config + *action.Config If string `json:"if,omitempty"` Input map[string]interface{} `json:"input,omitempty"` Output map[string]interface{} `json:"output,omitempty"` From 9651d6767f2250add09a829b232c4a66a7115949 Mon Sep 17 00:00:00 2001 From: Akshay Gadikar Date: Fri, 15 Feb 2019 11:18:28 -0800 Subject: [PATCH 87/87] Clear channel map in stop function --- engine/channels/channels.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/channels/channels.go b/engine/channels/channels.go index ba0dac44..d62e0dd1 100644 --- a/engine/channels/channels.go +++ b/engine/channels/channels.go @@ -75,7 +75,7 @@ func Stop() error { log.RootLogger().Warnf("error stopping channel '%s', error: %s", channel.name, err.Error()) } } - + channels = make(map[string]*channelImpl) active = false return nil