Initial version, empty shell
This commit is contained in:
		
							
								
								
									
										30
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
FROM golang:alpine as builder
 | 
			
		||||
 | 
			
		||||
WORKDIR /app 
 | 
			
		||||
 | 
			
		||||
COPY . .
 | 
			
		||||
 | 
			
		||||
RUN apk add git
 | 
			
		||||
 | 
			
		||||
RUN go get github.com/beego/bee/v2 && go install github.com/beego/bee/v2@master
 | 
			
		||||
 | 
			
		||||
RUN timeout 15 bee run -gendoc=true -downdoc=true -runmode=dev || :
 | 
			
		||||
 | 
			
		||||
RUN sed -i 's/http:\/\/127.0.0.1:8080\/swagger\/swagger.json/swagger.json/g' swagger/index.html
 | 
			
		||||
 | 
			
		||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" .
 | 
			
		||||
 | 
			
		||||
RUN ls /app
 | 
			
		||||
 | 
			
		||||
FROM scratch
 | 
			
		||||
 | 
			
		||||
WORKDIR /app
 | 
			
		||||
 | 
			
		||||
COPY --from=builder /app/oc-workflow /usr/bin/ 
 | 
			
		||||
COPY --from=builder /app/swagger /app/swagger
 | 
			
		||||
 | 
			
		||||
COPY docker_workflow.json /etc/oc/workflow.json
 | 
			
		||||
 | 
			
		||||
EXPOSE 8080
 | 
			
		||||
 | 
			
		||||
ENTRYPOINT ["oc-workflow"]
 | 
			
		||||
							
								
								
									
										9
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								LICENSE
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) <year> <copyright holders>
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							@@ -1,3 +1,13 @@
 | 
			
		||||
# oc-workflow
 | 
			
		||||
# oc-workflow OpenCloud workflow service.
 | 
			
		||||
 | 
			
		||||
Manages user workflows 
 | 
			
		||||
 | 
			
		||||
To build :
 | 
			
		||||
 | 
			
		||||
    bee generate routers
 | 
			
		||||
    bee run -gendoc=true -downdoc=true
 | 
			
		||||
 | 
			
		||||
If default Swagger page is displayed instead of tyour api, change url in swagger/index.html file to :
 | 
			
		||||
 | 
			
		||||
    url: "swagger.json"
 | 
			
		||||
 | 
			
		||||
workflows management api
 | 
			
		||||
							
								
								
									
										7
									
								
								conf/app.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								conf/app.conf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
appname = oc-workflow
 | 
			
		||||
httpport = 8080
 | 
			
		||||
runmode = dev
 | 
			
		||||
autorender = false
 | 
			
		||||
copyrequestbody = true
 | 
			
		||||
EnableDocs = true
 | 
			
		||||
sqlconn = 
 | 
			
		||||
							
								
								
									
										19
									
								
								controllers/version.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								controllers/version.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
package controllers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	beego "github.com/beego/beego/v2/server/web"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// VersionController operations for Version
 | 
			
		||||
type VersionController struct {
 | 
			
		||||
	beego.Controller
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// @Title GetAll
 | 
			
		||||
// @Description get version
 | 
			
		||||
// @Success 200
 | 
			
		||||
// @router / [get]
 | 
			
		||||
func (c *VersionController) GetAll() {
 | 
			
		||||
	c.Data["json"] = map[string]string{"version": "1"}
 | 
			
		||||
	c.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										60
									
								
								controllers/workflow.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								controllers/workflow.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
package controllers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	beego "github.com/beego/beego/v2/server/web"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Operations about workflow
 | 
			
		||||
type WorkflowController struct {
 | 
			
		||||
	beego.Controller
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// @Title Create
 | 
			
		||||
// @Description create workflows
 | 
			
		||||
// @Param	body		body 	[]models.workflow	true		"The workflow content"
 | 
			
		||||
// @Success 200 {string} models.workflow.Id
 | 
			
		||||
// @Failure 403 body is empty
 | 
			
		||||
// @router / [post]
 | 
			
		||||
func (o *WorkflowController) Post() {
 | 
			
		||||
	// store and return Id or post with UUID
 | 
			
		||||
	o.Data["json"] = map[string]string{"Id": "?"}
 | 
			
		||||
	o.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// @Title Get
 | 
			
		||||
// @Description find workflow by workflowid
 | 
			
		||||
// @Param	workflowId		path 	string	true		"the workflowid you want to get"
 | 
			
		||||
// @Success 200 {workflow} models.workflow
 | 
			
		||||
// @Failure 403 :workflowId is empty
 | 
			
		||||
// @router /:workflowId [get]
 | 
			
		||||
func (o *WorkflowController) Get() {
 | 
			
		||||
	workflowId := o.Ctx.Input.Param(":workflowId")
 | 
			
		||||
	fmt.Println(workflowId)
 | 
			
		||||
	o.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// @Title Find
 | 
			
		||||
// @Description find workflows with query
 | 
			
		||||
// @Param	query		path 	string	true	"the keywords you need"
 | 
			
		||||
// @Success 200 {workflows} []models.workflow
 | 
			
		||||
// @Failure 403
 | 
			
		||||
// @router /find/:query [get]
 | 
			
		||||
func (o *WorkflowController) Find() {
 | 
			
		||||
	query := o.Ctx.Input.Param(":query")
 | 
			
		||||
	fmt.Println(query)
 | 
			
		||||
	o.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// @Title Delete
 | 
			
		||||
// @Description delete the workflow
 | 
			
		||||
// @Param	workflowId		path 	string	true		"The workflowId you want to delete"
 | 
			
		||||
// @Success 200 {string} delete success!
 | 
			
		||||
// @Failure 403 workflowId is empty
 | 
			
		||||
// @router /:workflowId [delete]
 | 
			
		||||
func (o *WorkflowController) Delete() {
 | 
			
		||||
	workflowId := o.Ctx.Input.Param(":workflowId")
 | 
			
		||||
	fmt.Println(workflowId)
 | 
			
		||||
	o.ServeJSON()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										10
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
version: '3.4'
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  ocworkflow:
 | 
			
		||||
    image: 'ocworkflow:latest'
 | 
			
		||||
    ports:
 | 
			
		||||
      - 8088:8080
 | 
			
		||||
    container_name: ocworkflow
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								docker_workflow.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								docker_workflow.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
    "mongourl":"http://localhost:4080", 
 | 
			
		||||
    "mongologin":"admin", 
 | 
			
		||||
    "mongopassword":"admin" 
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										41
									
								
								go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								go.mod
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
module oc-workflow
 | 
			
		||||
 | 
			
		||||
go 1.19
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/beego/beego v1.12.11
 | 
			
		||||
	github.com/beego/beego/v2 v2.0.7
 | 
			
		||||
	github.com/go-redis/redis v6.14.2+incompatible
 | 
			
		||||
	github.com/goraz/onion v0.1.3
 | 
			
		||||
	github.com/smartystreets/goconvey v1.7.2
 | 
			
		||||
	github.com/tidwall/gjson v1.14.4
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
require (
 | 
			
		||||
	github.com/beorn7/perks v1.0.1 // indirect
 | 
			
		||||
	github.com/cespare/xxhash/v2 v2.2.0 // indirect
 | 
			
		||||
	github.com/golang/protobuf v1.5.2 // indirect
 | 
			
		||||
	github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect
 | 
			
		||||
	github.com/hashicorp/golang-lru v0.5.4 // indirect
 | 
			
		||||
	github.com/jtolds/gls v4.20.0+incompatible // indirect
 | 
			
		||||
	github.com/kr/pretty v0.3.1 // indirect
 | 
			
		||||
	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
 | 
			
		||||
	github.com/mitchellh/mapstructure v1.5.0 // indirect
 | 
			
		||||
	github.com/pkg/errors v0.9.1 // indirect
 | 
			
		||||
	github.com/prometheus/client_golang v1.14.0 // indirect
 | 
			
		||||
	github.com/prometheus/client_model v0.3.0 // indirect
 | 
			
		||||
	github.com/prometheus/common v0.41.0 // indirect
 | 
			
		||||
	github.com/prometheus/procfs v0.9.0 // indirect
 | 
			
		||||
	github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 // indirect
 | 
			
		||||
	github.com/smartystreets/assertions v1.2.0 // indirect
 | 
			
		||||
	github.com/stretchr/testify v1.8.1 // indirect
 | 
			
		||||
	github.com/tidwall/match v1.1.1 // indirect
 | 
			
		||||
	github.com/tidwall/pretty v1.2.0 // indirect
 | 
			
		||||
	golang.org/x/crypto v0.7.0 // indirect
 | 
			
		||||
	golang.org/x/net v0.8.0 // indirect
 | 
			
		||||
	golang.org/x/sys v0.6.0 // indirect
 | 
			
		||||
	golang.org/x/text v0.8.0 // indirect
 | 
			
		||||
	google.golang.org/protobuf v1.28.1 // indirect
 | 
			
		||||
	gopkg.in/yaml.v2 v2.4.0 // indirect
 | 
			
		||||
	gopkg.in/yaml.v3 v3.0.1 // indirect
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										251
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										251
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,251 @@
 | 
			
		||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 | 
			
		||||
github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
 | 
			
		||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 | 
			
		||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 | 
			
		||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 | 
			
		||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 | 
			
		||||
github.com/alicebob/gopher-json v0.0.0-20180125190556-5a6b3ba71ee6/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
 | 
			
		||||
github.com/alicebob/miniredis v2.5.0+incompatible/go.mod h1:8HZjEj4yU0dwhYHky+DxYx+6BMjkBbe5ONFIF1MXffk=
 | 
			
		||||
github.com/beego/beego v1.12.11 h1:MWKcnpavb7iAIS0m6uuEq6pHKkYvGNw/5umIUKqL7jM=
 | 
			
		||||
github.com/beego/beego v1.12.11/go.mod h1:QURFL1HldOcCZAxnc1cZ7wrplsYR5dKPHFjmk6WkLAs=
 | 
			
		||||
github.com/beego/beego/v2 v2.0.7 h1:9KNnUM40tn3pbCOFfe6SJ1oOL0oTi/oBS/C/wCEdAXA=
 | 
			
		||||
github.com/beego/beego/v2 v2.0.7/go.mod h1:f0uOEkmJWgAuDTlTxUdgJzwG3PDSIf3UWF3NpMohbFE=
 | 
			
		||||
github.com/beego/goyaml2 v0.0.0-20130207012346-5545475820dd/go.mod h1:1b+Y/CofkYwXMUU0OhQqGvsY2Bvgr4j6jfT699wyZKQ=
 | 
			
		||||
github.com/beego/x2j v0.0.0-20131220205130-a0352aadc542/go.mod h1:kSeGC/p1AbBiEp5kat81+DSQrZenVBZXklMLaELspWU=
 | 
			
		||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
 | 
			
		||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
 | 
			
		||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
 | 
			
		||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
 | 
			
		||||
github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=
 | 
			
		||||
github.com/casbin/casbin v1.7.0/go.mod h1:c67qKN6Oum3UF5Q1+BByfFxkwKvhwW57ITjqwtzR1KE=
 | 
			
		||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 | 
			
		||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
 | 
			
		||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 | 
			
		||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
 | 
			
		||||
github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
 | 
			
		||||
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 | 
			
		||||
github.com/couchbase/go-couchbase v0.0.0-20201216133707-c04035124b17/go.mod h1:+/bddYDxXsf9qt0xpDUtRR47A2GjaXmGGAqQ/k3GJ8A=
 | 
			
		||||
github.com/couchbase/gomemcached v0.1.2-0.20201224031647-c432ccf49f32/go.mod h1:mxliKQxOv84gQ0bJWbI+w9Wxdpt9HjDvgW9MjCym5Vo=
 | 
			
		||||
github.com/couchbase/goutils v0.0.0-20210118111533-e33d3ffb5401/go.mod h1:BQwMFlJzDjFDG3DJUdU0KORxn88UlsOULuxLExMh3Hs=
 | 
			
		||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 | 
			
		||||
github.com/cupcake/rdb v0.0.0-20161107195141-43ba34106c76/go.mod h1:vYwsqCOLxGiisLwp9rITslkFNpZD5rz43tf41QFkTWY=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 | 
			
		||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
			
		||||
github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M=
 | 
			
		||||
github.com/elastic/go-elasticsearch/v6 v6.8.5/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI=
 | 
			
		||||
github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4=
 | 
			
		||||
github.com/elazarl/go-bindata-assetfs v1.0.1 h1:m0kkaHRKEu7tUIUFVwhGGGYClXvyl4RE03qmvRTNfbw=
 | 
			
		||||
github.com/etcd-io/etcd v3.3.17+incompatible/go.mod h1:cdZ77EstHBwVtD6iTgzgvogwcjo9m4iOqoijouPJ4bs=
 | 
			
		||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 | 
			
		||||
github.com/glendc/gopher-json v0.0.0-20170414221815-dc4743023d0c/go.mod h1:Gja1A+xZ9BoviGJNA2E9vFkPjjsl+CoJxSXiQM1UXtw=
 | 
			
		||||
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 | 
			
		||||
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 | 
			
		||||
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
 | 
			
		||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 | 
			
		||||
github.com/go-redis/redis v6.14.2+incompatible h1:UE9pLhzmWf+xHNmZsoccjXosPicuiNaInPgym8nzfg0=
 | 
			
		||||
github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
 | 
			
		||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
 | 
			
		||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 | 
			
		||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 | 
			
		||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 | 
			
		||||
github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
 | 
			
		||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
 | 
			
		||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
 | 
			
		||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
 | 
			
		||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
 | 
			
		||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
 | 
			
		||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
 | 
			
		||||
github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 | 
			
		||||
github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4=
 | 
			
		||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
			
		||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 | 
			
		||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
 | 
			
		||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
 | 
			
		||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
 | 
			
		||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 | 
			
		||||
github.com/goraz/onion v0.1.3 h1:KhyvbDA2b70gcz/d5izfwTiOH8SmrvV43AsVzpng3n0=
 | 
			
		||||
github.com/goraz/onion v0.1.3/go.mod h1:XEmz1XoBz+wxTgWB8NwuvRm4RAu3vKxvrmYtzK+XCuQ=
 | 
			
		||||
github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
 | 
			
		||||
github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
 | 
			
		||||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
 | 
			
		||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
 | 
			
		||||
github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
 | 
			
		||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 | 
			
		||||
github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 | 
			
		||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
 | 
			
		||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
 | 
			
		||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 | 
			
		||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 | 
			
		||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 | 
			
		||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 | 
			
		||||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 | 
			
		||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 | 
			
		||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 | 
			
		||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 | 
			
		||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 | 
			
		||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
 | 
			
		||||
github.com/ledisdb/ledisdb v0.0.0-20200510135210-d35789ec47e6/go.mod h1:n931TsDuKuq+uX4v1fulaMbA/7ZLLhjc85h7chZGBCQ=
 | 
			
		||||
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
 | 
			
		||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 | 
			
		||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
 | 
			
		||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
 | 
			
		||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
 | 
			
		||||
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
 | 
			
		||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 | 
			
		||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 | 
			
		||||
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 | 
			
		||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 | 
			
		||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
 | 
			
		||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 | 
			
		||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 | 
			
		||||
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
 | 
			
		||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 | 
			
		||||
github.com/ogier/pflag v0.0.1/go.mod h1:zkFki7tvTa0tafRvTBIZTvzYyAu6kQhPZFnshFFPE+g=
 | 
			
		||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 | 
			
		||||
github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU=
 | 
			
		||||
github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
 | 
			
		||||
github.com/onsi/gomega v1.7.1 h1:K0jcRCwNQM3vFGh1ppMtDh/+7ApJrjldlX8fA0jDTLQ=
 | 
			
		||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
 | 
			
		||||
github.com/pelletier/go-toml v1.0.1/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
 | 
			
		||||
github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys=
 | 
			
		||||
github.com/peterh/liner v1.0.1-0.20171122030339-3681c2a91233/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc=
 | 
			
		||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
 | 
			
		||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
			
		||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
			
		||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 | 
			
		||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 | 
			
		||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
			
		||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
 | 
			
		||||
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
 | 
			
		||||
github.com/prometheus/client_golang v1.7.0/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
 | 
			
		||||
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
 | 
			
		||||
github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
 | 
			
		||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
 | 
			
		||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 | 
			
		||||
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 | 
			
		||||
github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
 | 
			
		||||
github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
 | 
			
		||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 | 
			
		||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
 | 
			
		||||
github.com/prometheus/common v0.41.0 h1:npo01n6vUlRViIj5fgwiK8vlNIh8bnoxqh3gypKsyAw=
 | 
			
		||||
github.com/prometheus/common v0.41.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=
 | 
			
		||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 | 
			
		||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 | 
			
		||||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
 | 
			
		||||
github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
 | 
			
		||||
github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
 | 
			
		||||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
 | 
			
		||||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
 | 
			
		||||
github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
 | 
			
		||||
github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 h1:DAYUYH5869yV94zvCES9F51oYtN5oGlwjxJJz7ZCnik=
 | 
			
		||||
github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
 | 
			
		||||
github.com/siddontang/go v0.0.0-20170517070808-cb568a3e5cc0/go.mod h1:3yhqj7WBBfRhbBlzyOC3gUxftwsU0u8gqevxwIHQpMw=
 | 
			
		||||
github.com/siddontang/goredis v0.0.0-20150324035039-760763f78400/go.mod h1:DDcKzU3qCuvj/tPnimWSsZZzvk9qvkvrIL5naVBPh5s=
 | 
			
		||||
github.com/siddontang/rdb v0.0.0-20150307021120-fc89ed2e418d/go.mod h1:AMEsy7v5z92TR1JKMkLLoaOQk++LVnOKL3ScbJ8GNGA=
 | 
			
		||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 | 
			
		||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 | 
			
		||||
github.com/skarademir/naturalsort v0.0.0-20150715044055-69a5d87bef62/go.mod h1:oIdVclZaltY1Nf7OQUkg1/2jImBJ+ZfKZuDIRSwk3p0=
 | 
			
		||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
 | 
			
		||||
github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N3yZFZkDFs=
 | 
			
		||||
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
 | 
			
		||||
github.com/smartystreets/goconvey v0.0.0-20190731233626-505e41936337/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
 | 
			
		||||
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
 | 
			
		||||
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
 | 
			
		||||
github.com/ssdb/gossdb v0.0.0-20180723034631-88f6b59b84ec/go.mod h1:QBvMkMya+gXctz3kmljlUCu/yB3GZ6oee+dUozsezQE=
 | 
			
		||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
			
		||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 | 
			
		||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
 | 
			
		||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
			
		||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
			
		||||
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 | 
			
		||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
			
		||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
 | 
			
		||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
 | 
			
		||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
 | 
			
		||||
github.com/syndtr/goleveldb v0.0.0-20160425020131-cfa635847112/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0=
 | 
			
		||||
github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM=
 | 
			
		||||
github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
 | 
			
		||||
github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
 | 
			
		||||
github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
 | 
			
		||||
github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs=
 | 
			
		||||
github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
 | 
			
		||||
github.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
 | 
			
		||||
github.com/wendal/errors v0.0.0-20181209125328-7f31f4b264ec/go.mod h1:Q12BUT7DqIlHRmgv3RskH+UCM/4eqVMgI0EMmlSpAXc=
 | 
			
		||||
github.com/yuin/gopher-lua v0.0.0-20171031051903-609c9cd26973/go.mod h1:aEV29XrmTYFr3CiRxZeGHpkvbwq+prZduBqMaascyCU=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 | 
			
		||||
golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 | 
			
		||||
golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
 | 
			
		||||
golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU=
 | 
			
		||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
			
		||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
			
		||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
			
		||||
golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ=
 | 
			
		||||
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
 | 
			
		||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
			
		||||
golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
 | 
			
		||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
			
		||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 | 
			
		||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
			
		||||
golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=
 | 
			
		||||
golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
 | 
			
		||||
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 | 
			
		||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 | 
			
		||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
 | 
			
		||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 | 
			
		||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
 | 
			
		||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 | 
			
		||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
 | 
			
		||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
 | 
			
		||||
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
 | 
			
		||||
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 | 
			
		||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
 | 
			
		||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
			
		||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 | 
			
		||||
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
 | 
			
		||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
 | 
			
		||||
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
 | 
			
		||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
 | 
			
		||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
			
		||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
 | 
			
		||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
 | 
			
		||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
			
		||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 | 
			
		||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
			
		||||
							
								
								
									
										53
									
								
								main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"oc-workflow/models"
 | 
			
		||||
	_ "oc-workflow/routers"
 | 
			
		||||
 | 
			
		||||
	"github.com/beego/beego/logs"
 | 
			
		||||
	beego "github.com/beego/beego/v2/server/web"
 | 
			
		||||
	"github.com/goraz/onion"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const defaultConfigFile = "/etc/oc/workflow.json"
 | 
			
		||||
const localConfigFile = "./workflow.json"
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	log := logs.NewLogger(10000)
 | 
			
		||||
	log.SetLogger("console")
 | 
			
		||||
 | 
			
		||||
	configFile := ""
 | 
			
		||||
	var o *onion.Onion
 | 
			
		||||
	l3 := onion.NewEnvLayerPrefix("_", "OCWORKFLOW_")
 | 
			
		||||
	l2, err := onion.NewFileLayer(defaultConfigFile, nil)
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		logs.Info("Config file found : " + defaultConfigFile)
 | 
			
		||||
		configFile = defaultConfigFile
 | 
			
		||||
	}
 | 
			
		||||
	l1, err := onion.NewFileLayer(localConfigFile, nil)
 | 
			
		||||
	if err == nil {
 | 
			
		||||
		logs.Info("Local config file found " + localConfigFile + ", overriding default file")
 | 
			
		||||
		configFile = localConfigFile
 | 
			
		||||
	}
 | 
			
		||||
	if configFile == "" {
 | 
			
		||||
		logs.Info("No config file found, using env")
 | 
			
		||||
		o = onion.New(l3)
 | 
			
		||||
	} else if l1 == nil && l2 == nil {
 | 
			
		||||
		o = onion.New(l1, l2, l3)
 | 
			
		||||
	} else if l1 == nil {
 | 
			
		||||
		o = onion.New(l2, l3)
 | 
			
		||||
	} else if l2 == nil {
 | 
			
		||||
		o = onion.New(l1, l3)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	models.GetConfig().MongoUrl = o.GetStringDefault("mongourl", "http://localhost:4080")
 | 
			
		||||
	models.GetConfig().MongoLogin = o.GetStringDefault("mongologin", "admin")
 | 
			
		||||
	models.GetConfig().MongoPassword = o.GetStringDefault("mongopassword", "admin")
 | 
			
		||||
 | 
			
		||||
	// Normal beego init
 | 
			
		||||
	//if beego.BConfig.RunMode == "dev" {
 | 
			
		||||
	beego.BConfig.WebConfig.DirectoryIndex = true
 | 
			
		||||
	beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
 | 
			
		||||
	//}
 | 
			
		||||
	beego.Run()
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								models/config.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								models/config.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import "sync"
 | 
			
		||||
 | 
			
		||||
type Config struct {
 | 
			
		||||
	MongoUrl      string
 | 
			
		||||
	MongoLogin    string
 | 
			
		||||
	MongoPassword string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var instance *Config
 | 
			
		||||
var once sync.Once
 | 
			
		||||
 | 
			
		||||
func GetConfig() *Config {
 | 
			
		||||
	once.Do(func() {
 | 
			
		||||
		instance = &Config{}
 | 
			
		||||
	})
 | 
			
		||||
	return instance
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								models/workflow.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								models/workflow.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	c := GetConfig()
 | 
			
		||||
	// configure storage
 | 
			
		||||
	fmt.Println(c.MongoUrl)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								oc-workflow
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								oc-workflow
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										55
									
								
								routers/commentsRouter.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								routers/commentsRouter.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
package routers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	beego "github.com/beego/beego/v2/server/web"
 | 
			
		||||
	"github.com/beego/beego/v2/server/web/context/param"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
 | 
			
		||||
    beego.GlobalControllerRouter["oc-workflow/controllers:VersionController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:VersionController"],
 | 
			
		||||
        beego.ControllerComments{
 | 
			
		||||
            Method: "GetAll",
 | 
			
		||||
            Router: `/`,
 | 
			
		||||
            AllowHTTPMethods: []string{"get"},
 | 
			
		||||
            MethodParams: param.Make(),
 | 
			
		||||
            Filters: nil,
 | 
			
		||||
            Params: nil})
 | 
			
		||||
 | 
			
		||||
    beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
 | 
			
		||||
        beego.ControllerComments{
 | 
			
		||||
            Method: "Post",
 | 
			
		||||
            Router: `/`,
 | 
			
		||||
            AllowHTTPMethods: []string{"post"},
 | 
			
		||||
            MethodParams: param.Make(),
 | 
			
		||||
            Filters: nil,
 | 
			
		||||
            Params: nil})
 | 
			
		||||
 | 
			
		||||
    beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
 | 
			
		||||
        beego.ControllerComments{
 | 
			
		||||
            Method: "Get",
 | 
			
		||||
            Router: `/:workflowId`,
 | 
			
		||||
            AllowHTTPMethods: []string{"get"},
 | 
			
		||||
            MethodParams: param.Make(),
 | 
			
		||||
            Filters: nil,
 | 
			
		||||
            Params: nil})
 | 
			
		||||
 | 
			
		||||
    beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
 | 
			
		||||
        beego.ControllerComments{
 | 
			
		||||
            Method: "Delete",
 | 
			
		||||
            Router: `/:workflowId`,
 | 
			
		||||
            AllowHTTPMethods: []string{"delete"},
 | 
			
		||||
            MethodParams: param.Make(),
 | 
			
		||||
            Filters: nil,
 | 
			
		||||
            Params: nil})
 | 
			
		||||
 | 
			
		||||
    beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
 | 
			
		||||
        beego.ControllerComments{
 | 
			
		||||
            Method: "Find",
 | 
			
		||||
            Router: `/find/:query`,
 | 
			
		||||
            AllowHTTPMethods: []string{"get"},
 | 
			
		||||
            MethodParams: param.Make(),
 | 
			
		||||
            Filters: nil,
 | 
			
		||||
            Params: nil})
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								routers/router.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								routers/router.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
// @APIVersion 1.0.0
 | 
			
		||||
// @Title beego Test API
 | 
			
		||||
// @Description beego has a very cool tools to autogenerate documents for your API
 | 
			
		||||
// @Contact astaxie@gmail.com
 | 
			
		||||
// @TermsOfServiceUrl http://beego.me/
 | 
			
		||||
// @License Apache 2.0
 | 
			
		||||
// @LicenseUrl http://www.apache.org/licenses/LICENSE-2.0.html
 | 
			
		||||
package routers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"oc-workflow/controllers"
 | 
			
		||||
 | 
			
		||||
	beego "github.com/beego/beego/v2/server/web"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	ns := beego.NewNamespace("/oc",
 | 
			
		||||
		beego.NSNamespace("/workflow",
 | 
			
		||||
			beego.NSInclude(
 | 
			
		||||
				&controllers.WorkflowController{},
 | 
			
		||||
			),
 | 
			
		||||
		),
 | 
			
		||||
		beego.NSNamespace("/version",
 | 
			
		||||
			beego.NSInclude(
 | 
			
		||||
				&controllers.VersionController{},
 | 
			
		||||
			),
 | 
			
		||||
		),
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
	beego.AddNamespace(ns)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								swagger/favicon-16x16.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								swagger/favicon-16x16.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 665 B  | 
							
								
								
									
										
											BIN
										
									
								
								swagger/favicon-32x32.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								swagger/favicon-32x32.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 628 B  | 
							
								
								
									
										60
									
								
								swagger/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								swagger/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
<!-- HTML for static distribution bundle build -->
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta charset="UTF-8">
 | 
			
		||||
    <title>Swagger UI</title>
 | 
			
		||||
    <link rel="stylesheet" type="text/css" href="./swagger-ui.css" />
 | 
			
		||||
    <link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
 | 
			
		||||
    <link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
 | 
			
		||||
    <style>
 | 
			
		||||
      html
 | 
			
		||||
      {
 | 
			
		||||
        box-sizing: border-box;
 | 
			
		||||
        overflow: -moz-scrollbars-vertical;
 | 
			
		||||
        overflow-y: scroll;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      *,
 | 
			
		||||
      *:before,
 | 
			
		||||
      *:after
 | 
			
		||||
      {
 | 
			
		||||
        box-sizing: inherit;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      body
 | 
			
		||||
      {
 | 
			
		||||
        margin:0;
 | 
			
		||||
        background: #fafafa;
 | 
			
		||||
      }
 | 
			
		||||
    </style>
 | 
			
		||||
  </head>
 | 
			
		||||
 | 
			
		||||
  <body>
 | 
			
		||||
    <div id="swagger-ui"></div>
 | 
			
		||||
 | 
			
		||||
    <script src="./swagger-ui-bundle.js" charset="UTF-8"> </script>
 | 
			
		||||
    <script src="./swagger-ui-standalone-preset.js" charset="UTF-8"> </script>
 | 
			
		||||
    <script>
 | 
			
		||||
    window.onload = function() {
 | 
			
		||||
      // Begin Swagger UI call region
 | 
			
		||||
      const ui = SwaggerUIBundle({
 | 
			
		||||
        url: "swagger.json",
 | 
			
		||||
        dom_id: '#swagger-ui',
 | 
			
		||||
        deepLinking: true,
 | 
			
		||||
        presets: [
 | 
			
		||||
          SwaggerUIBundle.presets.apis,
 | 
			
		||||
          SwaggerUIStandalonePreset
 | 
			
		||||
        ],
 | 
			
		||||
        plugins: [
 | 
			
		||||
          SwaggerUIBundle.plugins.DownloadUrl
 | 
			
		||||
        ],
 | 
			
		||||
        layout: "StandaloneLayout"
 | 
			
		||||
      });
 | 
			
		||||
      // End Swagger UI call region
 | 
			
		||||
 | 
			
		||||
      window.ui = ui;
 | 
			
		||||
    };
 | 
			
		||||
  </script>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										79
									
								
								swagger/oauth2-redirect.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								swagger/oauth2-redirect.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
<!doctype html>
 | 
			
		||||
<html lang="en-US">
 | 
			
		||||
<head>
 | 
			
		||||
    <title>Swagger UI: OAuth2 Redirect</title>
 | 
			
		||||
</head>
 | 
			
		||||
<body>
 | 
			
		||||
<script>
 | 
			
		||||
    'use strict';
 | 
			
		||||
    function run () {
 | 
			
		||||
        var oauth2 = window.opener.swaggerUIRedirectOauth2;
 | 
			
		||||
        var sentState = oauth2.state;
 | 
			
		||||
        var redirectUrl = oauth2.redirectUrl;
 | 
			
		||||
        var isValid, qp, arr;
 | 
			
		||||
 | 
			
		||||
        if (/code|token|error/.test(window.location.hash)) {
 | 
			
		||||
            qp = window.location.hash.substring(1);
 | 
			
		||||
        } else {
 | 
			
		||||
            qp = location.search.substring(1);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        arr = qp.split("&");
 | 
			
		||||
        arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';});
 | 
			
		||||
        qp = qp ? JSON.parse('{' + arr.join() + '}',
 | 
			
		||||
                function (key, value) {
 | 
			
		||||
                    return key === "" ? value : decodeURIComponent(value);
 | 
			
		||||
                }
 | 
			
		||||
        ) : {};
 | 
			
		||||
 | 
			
		||||
        isValid = qp.state === sentState;
 | 
			
		||||
 | 
			
		||||
        if ((
 | 
			
		||||
          oauth2.auth.schema.get("flow") === "accessCode" ||
 | 
			
		||||
          oauth2.auth.schema.get("flow") === "authorizationCode" ||
 | 
			
		||||
          oauth2.auth.schema.get("flow") === "authorization_code"
 | 
			
		||||
        ) && !oauth2.auth.code) {
 | 
			
		||||
            if (!isValid) {
 | 
			
		||||
                oauth2.errCb({
 | 
			
		||||
                    authId: oauth2.auth.name,
 | 
			
		||||
                    source: "auth",
 | 
			
		||||
                    level: "warning",
 | 
			
		||||
                    message: "Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (qp.code) {
 | 
			
		||||
                delete oauth2.state;
 | 
			
		||||
                oauth2.auth.code = qp.code;
 | 
			
		||||
                oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
 | 
			
		||||
            } else {
 | 
			
		||||
                let oauthErrorMsg;
 | 
			
		||||
                if (qp.error) {
 | 
			
		||||
                    oauthErrorMsg = "["+qp.error+"]: " +
 | 
			
		||||
                        (qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
 | 
			
		||||
                        (qp.error_uri ? "More info: "+qp.error_uri : "");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                oauth2.errCb({
 | 
			
		||||
                    authId: oauth2.auth.name,
 | 
			
		||||
                    source: "auth",
 | 
			
		||||
                    level: "error",
 | 
			
		||||
                    message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server"
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
 | 
			
		||||
        }
 | 
			
		||||
        window.close();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (document.readyState !== 'loading') {
 | 
			
		||||
        run();
 | 
			
		||||
    } else {
 | 
			
		||||
        document.addEventListener('DOMContentLoaded', function () {
 | 
			
		||||
            run();
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
</script>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										3
									
								
								swagger/swagger-ui-bundle.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								swagger/swagger-ui-bundle.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								swagger/swagger-ui-bundle.js.map
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								swagger/swagger-ui-bundle.js.map
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								swagger/swagger-ui-es-bundle-core.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								swagger/swagger-ui-es-bundle-core.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										3
									
								
								swagger/swagger-ui-es-bundle.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								swagger/swagger-ui-es-bundle.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										3
									
								
								swagger/swagger-ui-standalone-preset.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								swagger/swagger-ui-standalone-preset.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								swagger/swagger-ui-standalone-preset.js.map
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								swagger/swagger-ui-standalone-preset.js.map
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								swagger/swagger-ui.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								swagger/swagger-ui.css
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								swagger/swagger-ui.css.map
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								swagger/swagger-ui.css.map
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								swagger/swagger-ui.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								swagger/swagger-ui.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								swagger/swagger-ui.js.map
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								swagger/swagger-ui.js.map
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										156
									
								
								swagger/swagger.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								swagger/swagger.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,156 @@
 | 
			
		||||
{
 | 
			
		||||
    "swagger": "2.0",
 | 
			
		||||
    "info": {
 | 
			
		||||
        "title": "beego Test API",
 | 
			
		||||
        "description": "beego has a very cool tools to autogenerate documents for your API\n",
 | 
			
		||||
        "version": "1.0.0",
 | 
			
		||||
        "termsOfService": "http://beego.me/",
 | 
			
		||||
        "contact": {
 | 
			
		||||
            "email": "astaxie@gmail.com"
 | 
			
		||||
        },
 | 
			
		||||
        "license": {
 | 
			
		||||
            "name": "Apache 2.0",
 | 
			
		||||
            "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    "basePath": "/oc",
 | 
			
		||||
    "paths": {
 | 
			
		||||
        "/version/": {
 | 
			
		||||
            "get": {
 | 
			
		||||
                "tags": [
 | 
			
		||||
                    "version"
 | 
			
		||||
                ],
 | 
			
		||||
                "description": "get version\n\u003cbr\u003e",
 | 
			
		||||
                "operationId": "VersionController.GetAll",
 | 
			
		||||
                "responses": {
 | 
			
		||||
                    "200": {
 | 
			
		||||
                        "description": ""
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "/workflow/": {
 | 
			
		||||
            "post": {
 | 
			
		||||
                "tags": [
 | 
			
		||||
                    "workflow"
 | 
			
		||||
                ],
 | 
			
		||||
                "description": "create workflows\n\u003cbr\u003e",
 | 
			
		||||
                "operationId": "WorkflowController.Create",
 | 
			
		||||
                "parameters": [
 | 
			
		||||
                    {
 | 
			
		||||
                        "in": "body",
 | 
			
		||||
                        "name": "body",
 | 
			
		||||
                        "description": "The workflow content",
 | 
			
		||||
                        "required": true,
 | 
			
		||||
                        "schema": {
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                                "$ref": "#/definitions/models.workflow"
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                ],
 | 
			
		||||
                "responses": {
 | 
			
		||||
                    "200": {
 | 
			
		||||
                        "description": "{string} models.workflow.Id"
 | 
			
		||||
                    },
 | 
			
		||||
                    "403": {
 | 
			
		||||
                        "description": "body is empty"
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "/workflow/find/{query}": {
 | 
			
		||||
            "get": {
 | 
			
		||||
                "tags": [
 | 
			
		||||
                    "workflow"
 | 
			
		||||
                ],
 | 
			
		||||
                "description": "find workflows with query\n\u003cbr\u003e",
 | 
			
		||||
                "operationId": "WorkflowController.Find",
 | 
			
		||||
                "parameters": [
 | 
			
		||||
                    {
 | 
			
		||||
                        "in": "path",
 | 
			
		||||
                        "name": "query",
 | 
			
		||||
                        "description": "the keywords you need",
 | 
			
		||||
                        "required": true,
 | 
			
		||||
                        "type": "string"
 | 
			
		||||
                    }
 | 
			
		||||
                ],
 | 
			
		||||
                "responses": {
 | 
			
		||||
                    "200": {
 | 
			
		||||
                        "description": "{workflows} []models.workflow"
 | 
			
		||||
                    },
 | 
			
		||||
                    "403": {
 | 
			
		||||
                        "description": ""
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "/workflow/{workflowId}": {
 | 
			
		||||
            "get": {
 | 
			
		||||
                "tags": [
 | 
			
		||||
                    "workflow"
 | 
			
		||||
                ],
 | 
			
		||||
                "description": "find workflow by workflowid\n\u003cbr\u003e",
 | 
			
		||||
                "operationId": "WorkflowController.Get",
 | 
			
		||||
                "parameters": [
 | 
			
		||||
                    {
 | 
			
		||||
                        "in": "path",
 | 
			
		||||
                        "name": "workflowId",
 | 
			
		||||
                        "description": "the workflowid you want to get",
 | 
			
		||||
                        "required": true,
 | 
			
		||||
                        "type": "string"
 | 
			
		||||
                    }
 | 
			
		||||
                ],
 | 
			
		||||
                "responses": {
 | 
			
		||||
                    "200": {
 | 
			
		||||
                        "description": "{workflow} models.workflow"
 | 
			
		||||
                    },
 | 
			
		||||
                    "403": {
 | 
			
		||||
                        "description": ":workflowId is empty"
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
            "delete": {
 | 
			
		||||
                "tags": [
 | 
			
		||||
                    "workflow"
 | 
			
		||||
                ],
 | 
			
		||||
                "description": "delete the workflow\n\u003cbr\u003e",
 | 
			
		||||
                "operationId": "WorkflowController.Delete",
 | 
			
		||||
                "parameters": [
 | 
			
		||||
                    {
 | 
			
		||||
                        "in": "path",
 | 
			
		||||
                        "name": "workflowId",
 | 
			
		||||
                        "description": "The workflowId you want to delete",
 | 
			
		||||
                        "required": true,
 | 
			
		||||
                        "type": "string"
 | 
			
		||||
                    }
 | 
			
		||||
                ],
 | 
			
		||||
                "responses": {
 | 
			
		||||
                    "200": {
 | 
			
		||||
                        "description": "{string} delete success!"
 | 
			
		||||
                    },
 | 
			
		||||
                    "403": {
 | 
			
		||||
                        "description": "workflowId is empty"
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    "definitions": {
 | 
			
		||||
        "models.workflow": {
 | 
			
		||||
            "title": "workflow",
 | 
			
		||||
            "type": "object"
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    "tags": [
 | 
			
		||||
        {
 | 
			
		||||
            "name": "workflow",
 | 
			
		||||
            "description": "Operations about workflow\n"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "name": "version",
 | 
			
		||||
            "description": "VersionController operations for Version\n"
 | 
			
		||||
        }
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										114
									
								
								swagger/swagger.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								swagger/swagger.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
			
		||||
swagger: "2.0"
 | 
			
		||||
info:
 | 
			
		||||
  title: beego Test API
 | 
			
		||||
  description: |
 | 
			
		||||
    beego has a very cool tools to autogenerate documents for your API
 | 
			
		||||
  version: 1.0.0
 | 
			
		||||
  termsOfService: http://beego.me/
 | 
			
		||||
  contact:
 | 
			
		||||
    email: astaxie@gmail.com
 | 
			
		||||
  license:
 | 
			
		||||
    name: Apache 2.0
 | 
			
		||||
    url: http://www.apache.org/licenses/LICENSE-2.0.html
 | 
			
		||||
basePath: /oc
 | 
			
		||||
paths:
 | 
			
		||||
  /version/:
 | 
			
		||||
    get:
 | 
			
		||||
      tags:
 | 
			
		||||
      - version
 | 
			
		||||
      description: |-
 | 
			
		||||
        get version
 | 
			
		||||
        <br>
 | 
			
		||||
      operationId: VersionController.GetAll
 | 
			
		||||
      responses:
 | 
			
		||||
        "200":
 | 
			
		||||
          description: ""
 | 
			
		||||
  /workflow/:
 | 
			
		||||
    post:
 | 
			
		||||
      tags:
 | 
			
		||||
      - workflow
 | 
			
		||||
      description: |-
 | 
			
		||||
        create workflows
 | 
			
		||||
        <br>
 | 
			
		||||
      operationId: WorkflowController.Create
 | 
			
		||||
      parameters:
 | 
			
		||||
      - in: body
 | 
			
		||||
        name: body
 | 
			
		||||
        description: The workflow content
 | 
			
		||||
        required: true
 | 
			
		||||
        schema:
 | 
			
		||||
          type: array
 | 
			
		||||
          items:
 | 
			
		||||
            $ref: '#/definitions/models.workflow'
 | 
			
		||||
      responses:
 | 
			
		||||
        "200":
 | 
			
		||||
          description: '{string} models.workflow.Id'
 | 
			
		||||
        "403":
 | 
			
		||||
          description: body is empty
 | 
			
		||||
  /workflow/{workflowId}:
 | 
			
		||||
    get:
 | 
			
		||||
      tags:
 | 
			
		||||
      - workflow
 | 
			
		||||
      description: |-
 | 
			
		||||
        find workflow by workflowid
 | 
			
		||||
        <br>
 | 
			
		||||
      operationId: WorkflowController.Get
 | 
			
		||||
      parameters:
 | 
			
		||||
      - in: path
 | 
			
		||||
        name: workflowId
 | 
			
		||||
        description: the workflowid you want to get
 | 
			
		||||
        required: true
 | 
			
		||||
        type: string
 | 
			
		||||
      responses:
 | 
			
		||||
        "200":
 | 
			
		||||
          description: '{workflow} models.workflow'
 | 
			
		||||
        "403":
 | 
			
		||||
          description: :workflowId is empty
 | 
			
		||||
    delete:
 | 
			
		||||
      tags:
 | 
			
		||||
      - workflow
 | 
			
		||||
      description: |-
 | 
			
		||||
        delete the workflow
 | 
			
		||||
        <br>
 | 
			
		||||
      operationId: WorkflowController.Delete
 | 
			
		||||
      parameters:
 | 
			
		||||
      - in: path
 | 
			
		||||
        name: workflowId
 | 
			
		||||
        description: The workflowId you want to delete
 | 
			
		||||
        required: true
 | 
			
		||||
        type: string
 | 
			
		||||
      responses:
 | 
			
		||||
        "200":
 | 
			
		||||
          description: '{string} delete success!'
 | 
			
		||||
        "403":
 | 
			
		||||
          description: workflowId is empty
 | 
			
		||||
  /workflow/find/{query}:
 | 
			
		||||
    get:
 | 
			
		||||
      tags:
 | 
			
		||||
      - workflow
 | 
			
		||||
      description: |-
 | 
			
		||||
        find workflows with query
 | 
			
		||||
        <br>
 | 
			
		||||
      operationId: WorkflowController.Find
 | 
			
		||||
      parameters:
 | 
			
		||||
      - in: path
 | 
			
		||||
        name: query
 | 
			
		||||
        description: the keywords you need
 | 
			
		||||
        required: true
 | 
			
		||||
        type: string
 | 
			
		||||
      responses:
 | 
			
		||||
        "200":
 | 
			
		||||
          description: '{workflows} []models.workflow'
 | 
			
		||||
        "403":
 | 
			
		||||
          description: ""
 | 
			
		||||
definitions:
 | 
			
		||||
  models.workflow:
 | 
			
		||||
    title: workflow
 | 
			
		||||
    type: object
 | 
			
		||||
tags:
 | 
			
		||||
- name: workflow
 | 
			
		||||
  description: |
 | 
			
		||||
    Operations about workflow
 | 
			
		||||
- name: version
 | 
			
		||||
  description: |
 | 
			
		||||
    VersionController operations for Version
 | 
			
		||||
							
								
								
									
										39
									
								
								tests/default_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								tests/default_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
package test
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"net/http/httptest"
 | 
			
		||||
	"testing"
 | 
			
		||||
	"runtime"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	_ "oc-workflow/routers"
 | 
			
		||||
 | 
			
		||||
	beego "github.com/beego/beego/v2/server/web"
 | 
			
		||||
	"github.com/beego/beego/v2/core/logs"
 | 
			
		||||
	. "github.com/smartystreets/goconvey/convey"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	_, file, _, _ := runtime.Caller(0)
 | 
			
		||||
	apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".." + string(filepath.Separator))))
 | 
			
		||||
	beego.TestBeegoInit(apppath)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TestGet is a sample to run an endpoint test
 | 
			
		||||
func TestGet(t *testing.T) {
 | 
			
		||||
	r, _ := http.NewRequest("GET", "/v1/object", nil)
 | 
			
		||||
	w := httptest.NewRecorder()
 | 
			
		||||
	beego.BeeApp.Handlers.ServeHTTP(w, r)
 | 
			
		||||
 | 
			
		||||
	logs.Info("testing", "TestGet", "Code[%d]\n%s", w.Code, w.Body.String())
 | 
			
		||||
 | 
			
		||||
	Convey("Subject: Test Station Endpoint\n", t, func() {
 | 
			
		||||
	        Convey("Status Code Should Be 200", func() {
 | 
			
		||||
	                So(w.Code, ShouldEqual, 200)
 | 
			
		||||
	        })
 | 
			
		||||
	        Convey("The Result Should Not Be Empty", func() {
 | 
			
		||||
	                So(w.Body.Len(), ShouldBeGreaterThan, 0)
 | 
			
		||||
	        })
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user