Additional refactor

This commit is contained in:
Gara Dorta 2026-05-15 19:31:52 +02:00
parent a7c91737b8
commit 91bdd60c7a

View File

@ -46,9 +46,7 @@ func run(receiveDir string) error {
return err return err
} }
if err := updateReceiveSchemaRefs(definitions, titleByFile); err != nil { updateReceiveSchemaRefs(definitions, titleByFile)
return err
}
addEnvelopeWrapperDefinition(definitions) addEnvelopeWrapperDefinition(definitions)
@ -76,20 +74,10 @@ func updateDocsGo(receiveDefinitions map[string]interface{}) error {
return err return err
} }
var document map[string]interface{} updatedTemplate, err := updateJSONDocument(toValidJson(template), receiveDefinitions)
if err := json.Unmarshal([]byte(toValidJson(template)), &document); err != nil { if err != nil {
return fmt.Errorf("parse document: %w", err)
}
if err := applyReceiveSchemaUpdates(document, receiveDefinitions); err != nil {
return err return err
} }
raw, err := json.MarshalIndent(document, "", " ")
if err != nil {
return fmt.Errorf("marshal document: %w", err)
}
updatedTemplate := string(raw)
updatedTemplate = encodeForGoRawString(updatedTemplate) updatedTemplate = encodeForGoRawString(updatedTemplate)
updated := string(content[:templateStart]) + updatedTemplate + string(content[templateEnd:]) updated := string(content[:templateStart]) + updatedTemplate + string(content[templateEnd:])
@ -106,21 +94,11 @@ func updateSwaggerJSON(receiveDefinitions map[string]interface{}) error {
return fmt.Errorf("read %s: %w", jsonDocsPath, err) return fmt.Errorf("read %s: %w", jsonDocsPath, err)
} }
var document map[string]interface{} updated, err := updateJSONDocument(string(content), receiveDefinitions)
if err := json.Unmarshal(content, &document); err != nil { if err != nil {
return fmt.Errorf("parse document: %w", err)
}
if err := applyReceiveSchemaUpdates(document, receiveDefinitions); err != nil {
return err return err
} }
raw, err := json.MarshalIndent(document, "", " ")
if err != nil {
return fmt.Errorf("marshal document: %w", err)
}
updated := string(raw)
if err := os.WriteFile(jsonDocsPath, []byte(updated), 0644); err != nil { if err := os.WriteFile(jsonDocsPath, []byte(updated), 0644); err != nil {
return fmt.Errorf("write %s: %w", jsonDocsPath, err) return fmt.Errorf("write %s: %w", jsonDocsPath, err)
} }
@ -156,6 +134,24 @@ func encodeForGoRawString(content string) string {
return content return content
} }
func updateJSONDocument(content string, receiveDefinitions map[string]interface{}) (string, error) {
var document map[string]interface{}
if err := json.Unmarshal([]byte(content), &document); err != nil {
return "", fmt.Errorf("parse document: %w", err)
}
if err := applyReceiveSchemaUpdates(document, receiveDefinitions); err != nil {
return "", err
}
raw, err := json.MarshalIndent(document, "", " ")
if err != nil {
return "", fmt.Errorf("marshal document: %w", err)
}
return string(raw), nil
}
func addReceiveSchemas(definitions map[string]interface{}, receiveDir string) (map[string]string, error) { func addReceiveSchemas(definitions map[string]interface{}, receiveDir string) (map[string]string, error) {
entries, err := os.ReadDir(receiveDir) entries, err := os.ReadDir(receiveDir)
if err != nil { if err != nil {
@ -221,15 +217,13 @@ func removeSchemaKeysRecursive(value interface{}, parentKey string) interface{}
} }
} }
func updateReceiveSchemaRefs(definitions map[string]interface{}, titleByFile map[string]string) error { func updateReceiveSchemaRefs(definitions map[string]interface{}, titleByFile map[string]string) {
for key, value := range definitions { for key, value := range definitions {
if !strings.HasPrefix(key, receivePrefix) { if !strings.HasPrefix(key, receivePrefix) {
continue continue
} }
definitions[key] = rewriteSchemaRefs(value, titleByFile) definitions[key] = rewriteSchemaRefs(value, titleByFile)
} }
return nil
} }
func rewriteSchemaRefs(value interface{}, titleByFile map[string]string) interface{} { func rewriteSchemaRefs(value interface{}, titleByFile map[string]string) interface{} {