mirror of
https://github.com/bbernhard/signal-cli-rest-api.git
synced 2026-05-18 13:24:15 +00:00
Additional refactor
This commit is contained in:
parent
a7c91737b8
commit
91bdd60c7a
@ -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{} {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user