Skip to content

Commit

Permalink
refactor: raml08: reduce complexity of function
Browse files Browse the repository at this point in the history
  • Loading branch information
grokify committed Oct 19, 2022
1 parent 6484f3f commit 72e4c66
Showing 1 changed file with 38 additions and 26 deletions.
64 changes: 38 additions & 26 deletions raml08/raml08openapi3/operations.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,32 +60,12 @@ func msaPaths(basePath string, msa map[string]any, omSet *openapi3edit.Operation
basePath = strings.TrimSpace(basePath)
if len(basePath) > 0 {
// only do if not at root.
for k, valAny := range msa {
// check if current `basePath`` is an HTTP method, and add operations if so.
_, err := httputilmore.ParseHTTPMethod(k)
if err != nil { // err means not known HTTP Method
continue
}
om := openapi3edit.OperationMore{
Path: basePath,
Method: strings.ToUpper(strings.TrimSpace(k)),
Operation: &oas3.Operation{}}
opMSA := valAny.(map[string]any)
if descAny, ok := opMSA[RAMLKeyDescription]; ok {
if descStr, ok := descAny.(string); ok {
om.Operation.Description = descStr
} else {
return ErrRAMLDescriptionNotString
}
}
if dispNameAny, ok := opMSA[RAMLKeyDisplayName]; ok {
if dispNameStr, ok := dispNameAny.(string); ok {
om.Operation.Summary = dispNameStr
} else {
return ErrRAMLDispNameNotString
}
}
omSet.OperationMores = append(omSet.OperationMores, om)
pathOms, err := operationMoresFromPathItem(basePath, msa)
if err != nil {
return err
}
if len(pathOms) > 0 {
omSet.OperationMores = append(omSet.OperationMores, pathOms...)
}
}

Expand All @@ -106,3 +86,35 @@ func msaPaths(basePath string, msa map[string]any, omSet *openapi3edit.Operation
}
return nil
}

func operationMoresFromPathItem(opPath string, opPathItem map[string]any) ([]openapi3edit.OperationMore, error) {
oms := []openapi3edit.OperationMore{}
for k, valAny := range opPathItem {
// check if current `opPathItem`` property is an HTTP method, and add operations if so.
_, err := httputilmore.ParseHTTPMethod(k)
if err != nil { // err means not known HTTP Method
continue
}
om := openapi3edit.OperationMore{
Path: opPath,
Method: strings.ToUpper(strings.TrimSpace(k)),
Operation: &oas3.Operation{}}
opMSA := valAny.(map[string]any)
if descAny, ok := opMSA[RAMLKeyDescription]; ok {
if descStr, ok := descAny.(string); ok {
om.Operation.Description = descStr
} else {
return oms, ErrRAMLDescriptionNotString
}
}
if dispNameAny, ok := opMSA[RAMLKeyDisplayName]; ok {
if dispNameStr, ok := dispNameAny.(string); ok {
om.Operation.Summary = dispNameStr
} else {
return oms, ErrRAMLDispNameNotString
}
}
oms = append(oms, om)
}
return oms, nil
}

0 comments on commit 72e4c66

Please sign in to comment.