1
0
mirror of https://github.com/raseels-repos/golang-saas-starter-kit.git synced 2025-08-08 22:36:41 +02:00

forked swaggo/swag and added caching to reduce build times

This commit is contained in:
Lee Brown
2019-08-07 20:19:09 -08:00
parent 195754432c
commit b387ccb827
13 changed files with 90 additions and 292 deletions

View File

@ -324,7 +324,7 @@ For more details on this service, read [web-api readme](https://gitlab.com/geeks
### API Documentation ### API Documentation
Documentation for this API service is automatically generated using [swag](https://github.com/swaggo/swag). Once this Documentation for this API service is automatically generated using [swag](https://github.com/geeks-accelerator/swag). Once this
web-api service is running, it can be accessed at /docs web-api service is running, it can be accessed at /docs
http://127.0.0.1:3001/docs/ http://127.0.0.1:3001/docs/

View File

@ -19,7 +19,7 @@ RUN GO111MODULE=off go get gopkg.in/go-playground/validator.v9 && \
GO111MODULE=off go get golang.org/x/crypto/nacl/secretbox GO111MODULE=off go get golang.org/x/crypto/nacl/secretbox
# Install swag with go modules enabled. # Install swag with go modules enabled.
RUN GO111MODULE=on go get -u github.com/swaggo/swag/cmd/swag RUN GO111MODULE=on go get -u github.com/geeks-accelerator/swag/cmd/swag
# Change dir to project base. # Change dir to project base.
WORKDIR $GOPATH/src/gitlab.com/geeks-accelerator/oss/saas-starter-kit WORKDIR $GOPATH/src/gitlab.com/geeks-accelerator/oss/saas-starter-kit
@ -34,6 +34,7 @@ FROM build_base_golang AS builder
ARG service ARG service
ARG commit_ref=- ARG commit_ref=-
ARG swagInit
# Copy shared packages. # Copy shared packages.
COPY internal ./internal COPY internal ./internal
@ -50,7 +51,8 @@ WORKDIR ./cmd/${service}
# Update the API documentation. # Update the API documentation.
# Disabled for the moment as it takes forever to run, rely on manual execution. # Disabled for the moment as it takes forever to run, rely on manual execution.
#RUN swag init RUN if [ "$swagInit" != "" ] swag init ; fi
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-X main.build=${commit_ref}" -a -installsuffix nocgo -o /gosrv . RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-X main.build=${commit_ref}" -a -installsuffix nocgo -o /gosrv .

View File

@ -26,7 +26,7 @@ initial admin user must first be created. The initial admin user can easily be c
## API Documentation ## API Documentation
Documentation for this API service is automatically generated using [swag](https://github.com/swaggo/swag). Once this Documentation for this API service is automatically generated using [swag](https://github.com/geeks-accelerator/swag). Once this
web-api service is running, it can be accessed at /docs web-api service is running, it can be accessed at /docs
http://127.0.0.1:3001/docs/ http://127.0.0.1:3001/docs/
@ -227,14 +227,14 @@ curl -H "Authorization: Bearer ${TOKEN}" http://127.0.0.1:3001/v1/users
## Update Swagger API Documentation ## Update Swagger API Documentation
Documentation is generated using [swag](https://github.com/swaggo/swag) Documentation is generated using [swag](https://github.com/geeks-accelerator/swag)
If you are developing this web-api service and you want your changes reflected in the API documentation, you will need If you are developing this web-api service and you want your changes reflected in the API documentation, you will need
to download Swag and then run it each time you want the API documentation to be updated. to download Swag and then run it each time you want the API documentation to be updated.
Download Swag with this command: Download Swag with this command:
```bash ```bash
go get -u github.com/swaggo/swag/cmd/swag go get -u github.com/geeks-accelerator/swag/cmd/swag
``` ```
Run `swag init` in the service's root folder which contains the main.go file. This will parse your comments and generate the required files (docs folder and docs/docs.go). Run `swag init` in the service's root folder which contains the main.go file. This will parse your comments and generate the required files (docs folder and docs/docs.go).

View File

@ -1,15 +1,16 @@
// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT // GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
// This file was generated by swaggo/swag at // This file was generated by geeks-accelerator/swag at
// 2019-08-06 18:48:15.927954 -0800 AKDT m=+412.149396591 // 2019-08-07 19:21:01.42416 -0800 AKDT m=+430.010377170
package docs package docs
import ( import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"strings"
"github.com/alecthomas/template" "github.com/alecthomas/template"
"github.com/swaggo/swag" "github.com/geeks-accelerator/swag"
) )
var doc = `{ var doc = `{
@ -17,7 +18,7 @@ var doc = `{
"swagger": "2.0", "swagger": "2.0",
"info": { "info": {
"description": "{{.Description}}", "description": "{{.Description}}",
"title": "SaaS Example API", "title": "{{.Title}}",
"contact": {}, "contact": {},
"license": { "license": {
"name": "Apache 2.0", "name": "Apache 2.0",
@ -63,21 +64,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -115,28 +113,24 @@ var doc = `{
"200": { "200": {
"description": "OK", "description": "OK",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/account.AccountResponse" "$ref": "#/definitions/account.AccountResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -178,21 +172,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"401": { "401": {
"description": "Unauthorized", "description": "Unauthorized",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -262,21 +253,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -317,35 +305,30 @@ var doc = `{
"201": { "201": {
"description": "Created", "description": "Created",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/project.ProjectResponse" "$ref": "#/definitions/project.ProjectResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -385,21 +368,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -441,21 +421,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -493,28 +470,24 @@ var doc = `{
"200": { "200": {
"description": "OK", "description": "OK",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/project.ProjectResponse" "$ref": "#/definitions/project.ProjectResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -551,21 +524,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -601,21 +571,18 @@ var doc = `{
"201": { "201": {
"description": "Created", "description": "Created",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/signup.SignupResponse" "$ref": "#/definitions/signup.SignupResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -685,21 +652,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -738,35 +702,30 @@ var doc = `{
"201": { "201": {
"description": "Created", "description": "Created",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/user_account.UserAccountResponse" "$ref": "#/definitions/user_account.UserAccountResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -803,21 +762,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -857,21 +813,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -913,21 +866,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -965,28 +915,24 @@ var doc = `{
"200": { "200": {
"description": "OK", "description": "OK",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/user_account.UserAccountResponse" "$ref": "#/definitions/user_account.UserAccountResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1056,14 +1002,12 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1102,28 +1046,24 @@ var doc = `{
"201": { "201": {
"description": "Created", "description": "Created",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/user.UserResponse" "$ref": "#/definitions/user.UserResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1163,21 +1103,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1219,21 +1156,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1275,21 +1209,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1328,21 +1259,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"401": { "401": {
"description": "Unauthorized", "description": "Unauthorized",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1380,28 +1308,24 @@ var doc = `{
"200": { "200": {
"description": "OK", "description": "OK",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/user.UserResponse" "$ref": "#/definitions/user.UserResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1438,21 +1362,18 @@ var doc = `{
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -2211,11 +2132,21 @@ type swaggerInfo struct {
} }
// SwaggerInfo holds exported Swagger Info so clients can modify it // SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = swaggerInfo{Schemes: []string{}} var SwaggerInfo = swaggerInfo{
Version: "",
Host: "",
BasePath: "",
Schemes: []string{},
Title: "SaaS Example API",
Description: "",
}
type s struct{} type s struct{}
func (s *s) ReadDoc() string { func (s *s) ReadDoc() string {
sInfo := SwaggerInfo
sInfo.Description = strings.Replace(sInfo.Description, "\n", "\\n", -1)
t, err := template.New("swagger_info").Funcs(template.FuncMap{ t, err := template.New("swagger_info").Funcs(template.FuncMap{
"marshal": func(v interface{}) string { "marshal": func(v interface{}) string {
a, _ := json.Marshal(v) a, _ := json.Marshal(v)
@ -2227,7 +2158,7 @@ func (s *s) ReadDoc() string {
} }
var tpl bytes.Buffer var tpl bytes.Buffer
if err := t.Execute(&tpl, SwaggerInfo); err != nil { if err := t.Execute(&tpl, sInfo); err != nil {
return doc return doc
} }

View File

@ -1,17 +1,13 @@
{ {
"swagger": "2.0", "swagger": "2.0",
"info": { "info": {
"description": "{{.Description}}",
"title": "SaaS Example API", "title": "SaaS Example API",
"contact": {}, "contact": {},
"license": { "license": {
"name": "Apache 2.0", "name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html" "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}, }
"version": "{{.Version}}"
}, },
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": { "paths": {
"/accounts": { "/accounts": {
"patch": { "patch": {
@ -48,21 +44,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -100,28 +93,24 @@
"200": { "200": {
"description": "OK", "description": "OK",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/account.AccountResponse" "$ref": "#/definitions/account.AccountResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -163,21 +152,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"401": { "401": {
"description": "Unauthorized", "description": "Unauthorized",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -247,21 +233,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -302,35 +285,30 @@
"201": { "201": {
"description": "Created", "description": "Created",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/project.ProjectResponse" "$ref": "#/definitions/project.ProjectResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -370,21 +348,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -426,21 +401,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -478,28 +450,24 @@
"200": { "200": {
"description": "OK", "description": "OK",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/project.ProjectResponse" "$ref": "#/definitions/project.ProjectResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -536,21 +504,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -586,21 +551,18 @@
"201": { "201": {
"description": "Created", "description": "Created",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/signup.SignupResponse" "$ref": "#/definitions/signup.SignupResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -670,21 +632,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -723,35 +682,30 @@
"201": { "201": {
"description": "Created", "description": "Created",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/user_account.UserAccountResponse" "$ref": "#/definitions/user_account.UserAccountResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -788,21 +742,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -842,21 +793,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -898,21 +846,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -950,28 +895,24 @@
"200": { "200": {
"description": "OK", "description": "OK",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/user_account.UserAccountResponse" "$ref": "#/definitions/user_account.UserAccountResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1041,14 +982,12 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1087,28 +1026,24 @@
"201": { "201": {
"description": "Created", "description": "Created",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/user.UserResponse" "$ref": "#/definitions/user.UserResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1148,21 +1083,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1204,21 +1136,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1260,21 +1189,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1313,21 +1239,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"401": { "401": {
"description": "Unauthorized", "description": "Unauthorized",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1365,28 +1288,24 @@
"200": { "200": {
"description": "OK", "description": "OK",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/user.UserResponse" "$ref": "#/definitions/user.UserResponse"
} }
}, },
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"404": { "404": {
"description": "Not Found", "description": "Not Found",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }
@ -1423,21 +1342,18 @@
"400": { "400": {
"description": "Bad Request", "description": "Bad Request",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"403": { "403": {
"description": "Forbidden", "description": "Forbidden",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
}, },
"500": { "500": {
"description": "Internal Server Error", "description": "Internal Server Error",
"schema": { "schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse" "$ref": "#/definitions/weberror.ErrorResponse"
} }
} }

View File

@ -1,4 +1,3 @@
basePath: '{{.BasePath}}'
definitions: definitions:
account.AccountResponse: account.AccountResponse:
properties: properties:
@ -518,15 +517,12 @@ definitions:
value: value:
type: object type: object
type: object type: object
host: '{{.Host}}'
info: info:
contact: {} contact: {}
description: '{{.Description}}'
license: license:
name: Apache 2.0 name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html url: http://www.apache.org/licenses/LICENSE-2.0.html
title: SaaS Example API title: SaaS Example API
version: '{{.Version}}'
paths: paths:
/accounts: /accounts:
patch: patch:
@ -549,17 +545,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Update account by ID summary: Update account by ID
@ -583,22 +576,18 @@ paths:
description: OK description: OK
schema: schema:
$ref: '#/definitions/account.AccountResponse' $ref: '#/definitions/account.AccountResponse'
type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Get account by ID summary: Get account by ID
@ -626,17 +615,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"401": "401":
description: Unauthorized description: Unauthorized
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- BasicAuth: [] - BasicAuth: []
summary: Token handles a request to authenticate a user. summary: Token handles a request to authenticate a user.
@ -681,17 +667,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: List projects summary: List projects
@ -718,17 +701,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Update project by ID summary: Update project by ID
@ -753,27 +733,22 @@ paths:
description: Created description: Created
schema: schema:
$ref: '#/definitions/project.ProjectResponse' $ref: '#/definitions/project.ProjectResponse'
type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Create new project. summary: Create new project.
@ -798,17 +773,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Delete project by ID summary: Delete project by ID
@ -831,22 +803,18 @@ paths:
description: OK description: OK
schema: schema:
$ref: '#/definitions/project.ProjectResponse' $ref: '#/definitions/project.ProjectResponse'
type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Get project by ID. summary: Get project by ID.
@ -873,17 +841,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Archive project by ID summary: Archive project by ID
@ -909,17 +874,14 @@ paths:
description: Created description: Created
schema: schema:
$ref: '#/definitions/signup.SignupResponse' $ref: '#/definitions/signup.SignupResponse'
type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
summary: Signup handles new account creation. summary: Signup handles new account creation.
tags: tags:
- signup - signup
@ -942,17 +904,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Delete user account by user ID and account ID summary: Delete user account by user ID and account ID
@ -996,17 +955,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: List user accounts summary: List user accounts
@ -1032,17 +988,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Update user account by user ID and account ID summary: Update user account by user ID and account ID
@ -1067,27 +1020,22 @@ paths:
description: Created description: Created
schema: schema:
$ref: '#/definitions/user_account.UserAccountResponse' $ref: '#/definitions/user_account.UserAccountResponse'
type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Create new user account. summary: Create new user account.
@ -1111,22 +1059,18 @@ paths:
description: OK description: OK
schema: schema:
$ref: '#/definitions/user_account.UserAccountResponse' $ref: '#/definitions/user_account.UserAccountResponse'
type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Get user account by ID summary: Get user account by ID
@ -1153,17 +1097,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Archive user account by user ID and account ID summary: Archive user account by user ID and account ID
@ -1209,12 +1150,10 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: List users summary: List users
@ -1240,17 +1179,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Update user by ID summary: Update user by ID
@ -1275,22 +1211,18 @@ paths:
description: Created description: Created
schema: schema:
$ref: '#/definitions/user.UserResponse' $ref: '#/definitions/user.UserResponse'
type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Create new user. summary: Create new user.
@ -1315,17 +1247,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Delete user by ID summary: Delete user by ID
@ -1348,22 +1277,18 @@ paths:
description: OK description: OK
schema: schema:
$ref: '#/definitions/user.UserResponse' $ref: '#/definitions/user.UserResponse'
type: object
"400": "400":
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"404": "404":
description: Not Found description: Not Found
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Get user by ID summary: Get user by ID
@ -1390,17 +1315,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Archive user by ID summary: Archive user by ID
@ -1427,17 +1349,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"403": "403":
description: Forbidden description: Forbidden
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Update user password by ID summary: Update user password by ID
@ -1462,17 +1381,14 @@ paths:
description: Bad Request description: Bad Request
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"401": "401":
description: Unauthorized description: Unauthorized
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
"500": "500":
description: Internal Server Error description: Internal Server Error
schema: schema:
$ref: '#/definitions/weberror.ErrorResponse' $ref: '#/definitions/weberror.ErrorResponse'
type: object
security: security:
- OAuth2Password: [] - OAuth2Password: []
summary: Switch account. summary: Switch account.

9
go.mod
View File

@ -9,7 +9,9 @@ require (
github.com/dustin/go-humanize v1.0.0 github.com/dustin/go-humanize v1.0.0
github.com/fatih/camelcase v1.0.0 github.com/fatih/camelcase v1.0.0
github.com/fatih/structtag v1.0.0 github.com/fatih/structtag v1.0.0
github.com/geeks-accelerator/files v0.0.0-20190704085106-630677cd5c14 // indirect
github.com/geeks-accelerator/sqlxmigrate v0.0.0-20190527223850-4a863a2d30db github.com/geeks-accelerator/sqlxmigrate v0.0.0-20190527223850-4a863a2d30db
github.com/geeks-accelerator/swag v1.6.3 // indirect
github.com/go-openapi/spec v0.19.2 // indirect github.com/go-openapi/spec v0.19.2 // indirect
github.com/go-openapi/swag v0.19.4 // indirect github.com/go-openapi/swag v0.19.4 // indirect
github.com/go-playground/locales v0.12.1 github.com/go-playground/locales v0.12.1
@ -26,6 +28,7 @@ require (
github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365 github.com/iancoleman/strcase v0.0.0-20190422225806-e506e3ef7365
github.com/ikeikeikeike/go-sitemap-generator/v2 v2.0.2 github.com/ikeikeikeike/go-sitemap-generator/v2 v2.0.2
github.com/jmoiron/sqlx v1.2.0 github.com/jmoiron/sqlx v1.2.0
github.com/json-iterator/go v1.1.7 // indirect
github.com/kelseyhightower/envconfig v1.4.0 github.com/kelseyhightower/envconfig v1.4.0
github.com/kr/pty v1.1.8 // indirect github.com/kr/pty v1.1.8 // indirect
github.com/leodido/go-urn v1.1.0 // indirect github.com/leodido/go-urn v1.1.0 // indirect
@ -44,17 +47,15 @@ require (
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24
github.com/stretchr/testify v1.3.0 github.com/stretchr/testify v1.3.0
github.com/sudo-suhas/symcrypto v1.0.0 github.com/sudo-suhas/symcrypto v1.0.0
github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14
github.com/swaggo/swag v1.6.2
github.com/tinylib/msgp v1.1.0 // indirect github.com/tinylib/msgp v1.1.0 // indirect
github.com/ugorji/go v1.1.7 // indirect
github.com/urfave/cli v1.21.0 github.com/urfave/cli v1.21.0
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80 golang.org/x/net v0.0.0-20190724013045-ca1201d0de80
golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa // indirect golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa // indirect
golang.org/x/text v0.3.2 golang.org/x/text v0.3.2
golang.org/x/tools v0.0.0-20190805222050-c5a2fd39b72a // indirect golang.org/x/tools v0.0.0-20190807223507-b346f7fd45de // indirect
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 // indirect
google.golang.org/appengine v1.6.1 // indirect google.golang.org/appengine v1.6.1 // indirect
gopkg.in/DataDog/dd-trace-go.v1 v1.16.1 gopkg.in/DataDog/dd-trace-go.v1 v1.16.1
gopkg.in/go-playground/validator.v9 v9.29.1 gopkg.in/go-playground/validator.v9 v9.29.1

33
go.sum
View File

@ -32,10 +32,17 @@ github.com/fatih/structtag v1.0.0 h1:pTHj65+u3RKWYPSGaU290FpI/dXxTaHdVwVwbcPKmEc
github.com/fatih/structtag v1.0.0/go.mod h1:IKitwq45uXL/yqi5mYghiD3w9H6eTOvI9vnk8tXMphA= github.com/fatih/structtag v1.0.0/go.mod h1:IKitwq45uXL/yqi5mYghiD3w9H6eTOvI9vnk8tXMphA=
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/geeks-accelerator/files v0.0.0-20190704085106-630677cd5c14 h1:Rrxsq3gr2TWGdnSWHfRbhP/hcxatCyC9kMgLZ3da75A=
github.com/geeks-accelerator/files v0.0.0-20190704085106-630677cd5c14/go.mod h1:HMLrFyDC+sI+871eKlqqIBcaDim/NI8//Mbe+UwhY78=
github.com/geeks-accelerator/sqlxmigrate v0.0.0-20190527223850-4a863a2d30db h1:mjErP7mTFHQ3cw/ibAkW3CvQ8gM4k19EkfzRzRINDAE= github.com/geeks-accelerator/sqlxmigrate v0.0.0-20190527223850-4a863a2d30db h1:mjErP7mTFHQ3cw/ibAkW3CvQ8gM4k19EkfzRzRINDAE=
github.com/geeks-accelerator/sqlxmigrate v0.0.0-20190527223850-4a863a2d30db/go.mod h1:dzpCjo4q7chhMVuHDzs/odROkieZ5Wjp70rNDuX83jU= github.com/geeks-accelerator/sqlxmigrate v0.0.0-20190527223850-4a863a2d30db/go.mod h1:dzpCjo4q7chhMVuHDzs/odROkieZ5Wjp70rNDuX83jU=
github.com/geeks-accelerator/swag v1.6.3 h1:WottuX4MHoy5ZJFXfL+p1IrChpUb/e4g5vpM6tcwOIE=
github.com/geeks-accelerator/swag v1.6.3/go.mod h1:YWy7dtuct7Uk3vmKr7s+v/F0SNkGYEeV7Y1CykFhmWU=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0= github.com/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
@ -72,6 +79,7 @@ github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@ -95,6 +103,8 @@ github.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA=
github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8= github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
@ -114,11 +124,17 @@ github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o=
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mattn/go-sqlite3 v1.11.0 h1:LDdKkqtYlom37fkvqs8rMPFKAMe8+SgjbwZ6ex1/A/Q= github.com/mattn/go-sqlite3 v1.11.0 h1:LDdKkqtYlom37fkvqs8rMPFKAMe8+SgjbwZ6ex1/A/Q=
github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
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/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@ -149,12 +165,13 @@ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/sudo-suhas/symcrypto v1.0.0 h1:VG6FdACf5XeXFQUzeA++aB6snNThz0OFlmUHiCddi2s= github.com/sudo-suhas/symcrypto v1.0.0 h1:VG6FdACf5XeXFQUzeA++aB6snNThz0OFlmUHiCddi2s=
github.com/sudo-suhas/symcrypto v1.0.0/go.mod h1:g/faGDjhlF/DXdqp3+SQ0LmhPcv4iYaIRjcm/Q60+68= github.com/sudo-suhas/symcrypto v1.0.0/go.mod h1:g/faGDjhlF/DXdqp3+SQ0LmhPcv4iYaIRjcm/Q60+68=
github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14 h1:PyYN9JH5jY9j6av01SpfRMb+1DWg/i3MbGOKPxJ2wjM=
github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14/go.mod h1:gxQT6pBGRuIGunNf/+tSOB5OHvguWi8Tbt82WOkf35E=
github.com/swaggo/swag v1.6.2 h1:WQMAtT/FmMBb7g0rAuHDhG3vvdtHKJ3WZ+Ssb0p4Y6E=
github.com/swaggo/swag v1.6.2/go.mod h1:YyZstMc22WYm6GEDx/CYWxq+faBbjQ5EqwQcrjREDBo=
github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU= github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU=
github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
github.com/ugorji/go v1.1.5-pre/go.mod h1:FwP/aQVg39TXzItUBMwnWp9T9gPQnXw4Poh4/oBQZ/0=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
github.com/ugorji/go/codec v1.1.5-pre/go.mod h1:tULtS6Gy1AE1yCENaw4Vb//HLH5njI2tfCQDUqRd8fI=
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli v1.21.0 h1:wYSSj06510qPIzGSua9ZqsncMmWE3Zr55KBERygyrxE= github.com/urfave/cli v1.21.0 h1:wYSSj06510qPIzGSua9ZqsncMmWE3Zr55KBERygyrxE=
@ -172,7 +189,9 @@ golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73r
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/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-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-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190611141213-3f473d35a33a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@ -183,8 +202,10 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEha
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/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-20190215142949-d0b11bdaac8a/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-20190222072716-a9d3bda3a223/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-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190730183949-1393eb018365 h1:SaXEMXhWzMJThc05vu6uh61Q245r4KaWMrsTedk0FDc= golang.org/x/sys v0.0.0-20190730183949-1393eb018365 h1:SaXEMXhWzMJThc05vu6uh61Q245r4KaWMrsTedk0FDc=
golang.org/x/sys v0.0.0-20190730183949-1393eb018365/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190730183949-1393eb018365/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@ -196,11 +217,14 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190730205120-7deaedd405c4 h1:GhbPrljMrt6gCNHHAJcWLDV3nDPFkIm0EEuqY9GtuX0= golang.org/x/tools v0.0.0-20190730205120-7deaedd405c4 h1:GhbPrljMrt6gCNHHAJcWLDV3nDPFkIm0EEuqY9GtuX0=
golang.org/x/tools v0.0.0-20190730205120-7deaedd405c4/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190730205120-7deaedd405c4/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
golang.org/x/tools v0.0.0-20190805222050-c5a2fd39b72a h1:0AGI+cC4FJwXNdClvHzfHhJf/yPjKwdo/+m0lPKrdJA= golang.org/x/tools v0.0.0-20190805222050-c5a2fd39b72a h1:0AGI+cC4FJwXNdClvHzfHhJf/yPjKwdo/+m0lPKrdJA=
golang.org/x/tools v0.0.0-20190805222050-c5a2fd39b72a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= golang.org/x/tools v0.0.0-20190805222050-c5a2fd39b72a/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI=
golang.org/x/tools v0.0.0-20190807223507-b346f7fd45de h1:VNumCimp/Bwk6fRqgPHkjiUPZ/vzlpi23/kQTuQ4gBA=
golang.org/x/tools v0.0.0-20190807223507-b346f7fd45de/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@ -215,6 +239,7 @@ gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM=
gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
gopkg.in/go-playground/validator.v9 v9.29.1 h1:SvGtYmN60a5CVKTOzMSyfzWDeZRxRuGvRQyEAKbw1xc= gopkg.in/go-playground/validator.v9 v9.29.1 h1:SvGtYmN60a5CVKTOzMSyfzWDeZRxRuGvRQyEAKbw1xc=
gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE=

View File

@ -12,14 +12,14 @@ saas middleware to automatically generate RESTful API documentation with Swagger
## Usage ## Usage
### Start using it ### Start using it
1. Add comments to your API source code, [See Declarative Comments Format](https://github.com/swaggo/swag#declarative-comments-format). 1. Add comments to your API source code, [See Declarative Comments Format](https://github.com/geeks-accelerator/swag#declarative-comments-format).
2. Download [Swag](https://github.com/swaggo/swag) for Go by using: 2. Download [Swag](https://github.com/geeks-accelerator/swag) for Go by using:
```sh ```sh
$ go get github.com/swaggo/swag/cmd/swag $ go get github.com/geeks-accelerator/swag/cmd/swag
``` ```
3. Run the [Swag](https://github.com/swaggo/swag) in your Go project root folder which contains `main.go` file, [Swag](https://github.com/swaggo/swag) will parse comments and generate required files(`docs` folder and `docs/doc.go`). 3. Run the [Swag](https://github.com/geeks-accelerator/swag) in your Go project root folder which contains `main.go` file, [Swag](https://github.com/geeks-accelerator/swag) will parse comments and generate required files(`docs` folder and `docs/doc.go`).
```sh_ "github.com/swaggo/echo-swagger/v2/example/docs" ```sh_ "github.com/swaggo/echo-swagger/v2/example/docs"
$ swag init $ swag init
``` ```

View File

@ -1,5 +1,5 @@
// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT // GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
// This file was generated by swaggo/swag at // This file was generated by geeks-accelerator/swag at
// 2019-06-24 13:07:10.15232 -0800 AKDT m=+0.076902855 // 2019-06-24 13:07:10.15232 -0800 AKDT m=+0.076902855
package docs package docs
@ -8,7 +8,7 @@ import (
"bytes" "bytes"
"github.com/alecthomas/template" "github.com/alecthomas/template"
"github.com/swaggo/swag" "github.com/geeks-accelerator/swag"
) )
var doc = `{ var doc = `{

View File

@ -3,17 +3,17 @@ package saasSwagger
import ( import (
"context" "context"
"fmt" "fmt"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web/weberror"
"github.com/pborman/uuid"
"html/template" "html/template"
"net/http" "net/http"
"regexp" "regexp"
"strings" "strings"
"github.com/pborman/uuid"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web/weberror"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web" "geeks-accelerator/oss/saas-starter-kit/internal/platform/web"
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/swaggo/files" "github.com/geeks-accelerator/files"
"github.com/swaggo/swag" "github.com/geeks-accelerator/swag"
) )
var ( var (

View File

@ -1,13 +1,13 @@
package signup package signup
import ( import (
"geeks-accelerator/oss/saas-starter-kit/internal/user_auth"
"os" "os"
"testing" "testing"
"time" "time"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/auth" "geeks-accelerator/oss/saas-starter-kit/internal/platform/auth"
"geeks-accelerator/oss/saas-starter-kit/internal/platform/tests" "geeks-accelerator/oss/saas-starter-kit/internal/platform/tests"
"geeks-accelerator/oss/saas-starter-kit/internal/user"
"github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp"
"github.com/pborman/uuid" "github.com/pborman/uuid"
"github.com/pkg/errors" "github.com/pkg/errors"
@ -40,15 +40,17 @@ func TestSignupValidation(t *testing.T) {
func(req SignupRequest, res *SignupResult) *SignupResult { func(req SignupRequest, res *SignupResult) *SignupResult {
return nil return nil
}, },
errors.New("Key: 'SignupRequest.account.name' Error:Field validation for 'name' failed on the 'required' tag\n" + errors.New("Key: 'SignupRequest.{{account}}.{{name}}' Error:Field validation for '{{name}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.account.address1' Error:Field validation for 'address1' failed on the 'required' tag\n" + "Key: 'SignupRequest.{{account}}.{{address1}}' Error:Field validation for '{{address1}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.account.city' Error:Field validation for 'city' failed on the 'required' tag\n" + "Key: 'SignupRequest.{{account}}.{{city}}' Error:Field validation for '{{city}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.account.region' Error:Field validation for 'region' failed on the 'required' tag\n" + "Key: 'SignupRequest.{{account}}.{{region}}' Error:Field validation for '{{region}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.account.country' Error:Field validation for 'country' failed on the 'required' tag\n" + "Key: 'SignupRequest.{{account}}.{{country}}' Error:Field validation for '{{country}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.account.zipcode' Error:Field validation for 'zipcode' failed on the 'required' tag\n" + "Key: 'SignupRequest.{{account}}.{{zipcode}}' Error:Field validation for '{{zipcode}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.user.name' Error:Field validation for 'name' failed on the 'required' tag\n" + "Key: 'SignupRequest.{{user}}.{{first_name}}' Error:Field validation for '{{first_name}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.user.email' Error:Field validation for 'email' failed on the 'required' tag\n" + "Key: 'SignupRequest.{{user}}.{{last_name}}' Error:Field validation for '{{last_name}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.user.password' Error:Field validation for 'password' failed on the 'required' tag"), "Key: 'SignupRequest.{{user}}.{{email}}' Error:Field validation for '{{email}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.{{user}}.{{password}}' Error:Field validation for '{{password}}' failed on the 'required' tag\n" +
"Key: 'SignupRequest.{{user}}.{{password_confirm}}' Error:Field validation for '{{password_confirm}}' failed on the 'required' tag"),
}, },
} }
@ -111,7 +113,8 @@ func TestSignupFull(t *testing.T) {
Zipcode: "99686", Zipcode: "99686",
}, },
User: SignupUser{ User: SignupUser{
Name: "Lee Brown", FirstName: "Lee",
LastName: "Brown",
Email: uuid.NewRandom().String() + "@geeksinthewoods.com", Email: uuid.NewRandom().String() + "@geeksinthewoods.com",
Password: "akTechFr0n!ier", Password: "akTechFr0n!ier",
PasswordConfirm: "akTechFr0n!ier", PasswordConfirm: "akTechFr0n!ier",
@ -122,7 +125,7 @@ func TestSignupFull(t *testing.T) {
now := time.Date(2018, time.October, 1, 0, 0, 0, 0, time.UTC) now := time.Date(2018, time.October, 1, 0, 0, 0, 0, time.UTC)
tknGen := &user.MockTokenGenerator{} tknGen := &auth.MockTokenGenerator{}
t.Log("Given the need to ensure signup works.") t.Log("Given the need to ensure signup works.")
{ {
@ -159,7 +162,10 @@ func TestSignupFull(t *testing.T) {
t.Logf("\t%s\tSignup ok.", tests.Success) t.Logf("\t%s\tSignup ok.", tests.Success)
// Verify that the user can be authenticated with the updated password. // Verify that the user can be authenticated with the updated password.
_, err = user.Authenticate(ctx, test.MasterDB, tknGen, res.User.Email, req.User.Password, time.Hour, now) _, err = user_auth.Authenticate(ctx, test.MasterDB, tknGen, user_auth.AuthenticateRequest{
Email:res.User.Email,
Password: req.User.Password,
}, time.Hour, now)
if err != nil { if err != nil {
t.Log("\t\tGot :", err) t.Log("\t\tGot :", err)
t.Fatalf("\t%s\tAuthenticate failed.", tests.Failed) t.Fatalf("\t%s\tAuthenticate failed.", tests.Failed)

View File

@ -332,6 +332,7 @@ func ServiceBuild(log *log.Logger, req *serviceBuildRequest) error {
"--build-arg", "service=" + req.ServiceName, "--build-arg", "service=" + req.ServiceName,
"--build-arg", "env=" + req.Env, "--build-arg", "env=" + req.Env,
"--build-arg", "commit_ref=" + req.CommitRef, "--build-arg", "commit_ref=" + req.CommitRef,
"--build-arg", "swagInit=1",
"-t", req.ReleaseImage, "-t", req.ReleaseImage,
} }