Skip to content

Commit

Permalink
add: swage spec to excel struct
Browse files Browse the repository at this point in the history
  • Loading branch information
markruler committed Apr 6, 2021
1 parent b151c0e commit 5a9b099
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 3 deletions.
3 changes: 3 additions & 0 deletions parser/parser_response.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ func extractResponses(swagger *oas.Swagger, operation *oas.Operation) (swageResp
// xlsx/simple/api_response.go
swageResponses = []APIResponse{}
oas_responses := operation.Responses
if oas_responses == nil {
return nil, errors.New("response is empty")
}
if oas_responses.Default != nil {
if oas_responses.Default.Schema != nil && !reflect.DeepEqual(oas.Ref{}, oas_responses.Default.Schema.Ref) {
schema, err := oas.ResolveRef(swagger, &oas_responses.Default.Schema.Ref)
Expand Down
2 changes: 2 additions & 0 deletions xlsx/excel.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ package xlsx
import (
"github.com/360EntSecGroup-Skylar/excelize/v2"
"github.com/go-openapi/spec"
"github.com/markruler/swage/parser"
)

// Excel to save
type Excel struct {
File *excelize.File
Style style
SwaggerSpec *spec.Swagger
SwageSpec *parser.SwageSpec
IndexSheetName string
WorkSheetName string
Context *context
Expand Down
22 changes: 19 additions & 3 deletions xlsx/simple/index.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,28 @@ func (simple *Simple) CreateIndexSheet() error {
xl.File.SetCellStr(xl.IndexSheetName, "D1", "path")
xl.File.SetCellStr(xl.IndexSheetName, "E1", "summary")

paths := parser.SortMap(xl.SwaggerSpec.Paths.Paths)
row := 1
// FIXME: refactor
// log.Println(len(xl.SwageSpec.API))
// for _, api := range xl.SwageSpec.API {
// // log.Println(api)
// xl.File.SetCellInt(xl.IndexSheetName, fmt.Sprintf("%s%d", "A", row+1), row)
// xl.File.SetCellStr(xl.IndexSheetName, fmt.Sprintf("%s%d", "B", row+1), api.Header.Tag)
// xl.File.SetCellStr(xl.IndexSheetName, fmt.Sprintf("%s%d", "C", row+1), api.Header.Method)
// xl.File.SetCellStr(xl.IndexSheetName, fmt.Sprintf("%s%d", "D", row+1), api.Header.Path)
// xl.File.SetCellStr(xl.IndexSheetName, fmt.Sprintf("%s%d", "E", row+1), api.Header.Summary)
// xl.File.SetCellHyperLink(xl.IndexSheetName, fmt.Sprintf("%s%d", "A", row+1), fmt.Sprintf("%d!A1", row), "Location")
// xl.File.SetCellHyperLink(xl.IndexSheetName, fmt.Sprintf("%s%d", "B", row+1), fmt.Sprintf("%d!A1", row), "Location")
// xl.File.SetCellHyperLink(xl.IndexSheetName, fmt.Sprintf("%s%d", "C", row+1), fmt.Sprintf("%d!A1", row), "Location")
// xl.File.SetCellHyperLink(xl.IndexSheetName, fmt.Sprintf("%s%d", "D", row+1), fmt.Sprintf("%d!A1", row), "Location")
// xl.File.SetCellHyperLink(xl.IndexSheetName, fmt.Sprintf("%s%d", "E", row+1), fmt.Sprintf("%d!A1", row), "Location")
// row++
// }

// TODO: remove
paths := parser.SortMap(xl.SwaggerSpec.Paths.Paths)
for _, path := range paths {
operations := xl.SwaggerSpec.Paths.Paths[path]
// FIXME: refactor
if operations.PathItemProps.Get != nil {
row, err = simple.setOperation(row, path, "GET", operations.PathItemProps.Get, xl.SwaggerSpec.Definitions)
if err != nil {
Expand Down Expand Up @@ -134,7 +151,6 @@ func (simple *Simple) setOperation(row int, path, method string, operation *spec
xl.File.SetCellHyperLink(xl.IndexSheetName, fmt.Sprintf("%s%d", "D", row+1), fmt.Sprintf("%d!A1", row), "Location")
xl.File.SetCellHyperLink(xl.IndexSheetName, fmt.Sprintf("%s%d", "E", row+1), fmt.Sprintf("%d!A1", row), "Location")

// FIXME: seperate from index sheet
if err := simple.CreateAPISheet(path, method, operation, definitions, row); err != nil {
return 0, err
}
Expand Down
12 changes: 12 additions & 0 deletions xlsx/simple/simple.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"errors"

"github.com/go-openapi/spec"
"github.com/markruler/swage/parser"
"github.com/markruler/swage/xlsx"
)

Expand Down Expand Up @@ -36,10 +37,21 @@ func (simple *Simple) Generate(spec *spec.Swagger) error {
return errors.New("path sould not be empty")
}

// TODO: remove swagger spec
simple.xl.SwaggerSpec = spec

swage_spec, err := parser.Convert(spec)
if err != nil {
return err
}
simple.xl.SwageSpec = swage_spec

if err := simple.CreateIndexSheet(); err != nil {
return err
}
// FIXME: seperate from index sheet
// if err := simple.CreateAPISheet(); err != nil {
// return err
// }
return nil
}

0 comments on commit 5a9b099

Please sign in to comment.