Skip to content

Commit

Permalink
Update encoding.go
Browse files Browse the repository at this point in the history
  • Loading branch information
supppppppbro authored Nov 22, 2023
1 parent d08c877 commit 1aa823f
Showing 1 changed file with 11 additions and 63 deletions.
74 changes: 11 additions & 63 deletions encoding/encoding.go
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@
package encoding
package precode

import (
"encoding/json"
"os"

"github.com/Yandex-Practicum/final-project-encoding-go/models"
"gopkg.in/yaml.v3"
)

// JSONData тип для перекодирования из JSON в YAML
type JSONData struct {
DockerCompose *models.DockerCompose // данные для сериализации и десериализации
FileInput string // имя файла, который нужно перекодировать
FileOutput string // имя файла с результатом перекодирования
DockerCompose *models.DockerCompose
FileInput string
FileOutput string
}

// YAMLData тип для перекодирования из YAML в JSON
type YAMLData struct {
DockerCompose *models.DockerCompose // данные для сериализации и десериализации
FileInput string // имя файла, который нужно перекодировать
FileOutput string // имя файла с результатом перекодирования
DockerCompose *models.DockerCompose
FileInput string
FileOutput string
}

// MyEncoder интерфейс для структур YAMLData и JSONData
Expand All @@ -29,64 +25,16 @@ type MyEncoder interface {

// Encoding перекодирует файл из JSON в YAML
func (j *JSONData) Encoding() error {
jsonFile, err := os.ReadFile(j.FileInput)
if err != nil {
return err
}

err = json.Unmarshal(jsonFile, &j.DockerCompose)
if err != nil {
return err
}

yamlData, err := yaml.Marshal(&j.DockerCompose)
if err != nil {
return err
}

yamlFile, err := os.Create(j.FileOutput)
if err != nil {
return err
}

defer yamlFile.Close()

_, err = yamlFile.Write(yamlData)
if err != nil {
return err
}
// ниже реализуйте метод
// ...

return nil
}

// Encoding перекодирует файл из YAML в JSON
func (y *YAMLData) Encoding() error {
yamlFile, err := os.ReadFile(y.FileInput)
if err != nil {
return err
}

err = yaml.Unmarshal(yamlFile, &y.DockerCompose)
if err != nil {
return err
}

jsonData, err := json.Marshal(&y.DockerCompose)
if err != nil {
return err
}

jsonFile, err := os.Create(y.FileOutput)
if err != nil {
return err
}

defer jsonFile.Close()

_, err = jsonFile.Write(jsonData)
if err != nil {
return err
}
// Ниже реализуйте метод
// ...

return nil
}

0 comments on commit 1aa823f

Please sign in to comment.