package export import ( "dehasher/internal/files" "dehasher/internal/sqlite" "encoding/json" "encoding/xml" "fmt" "gopkg.in/yaml.v3" "os" ) func WriteHunterDomainToFile(result sqlite.HunterDomainData, outputFile string, fileType files.FileType) error { var data []byte var err error switch fileType { case files.JSON: data, err = json.MarshalIndent(result, "", " ") case files.XML: data, err = xml.MarshalIndent(result, "", " ") case files.YAML: data, err = yaml.Marshal(result) case files.TEXT: data = []byte(result.String()) default: return err } if err != nil { return err } filePath := fmt.Sprintf("%s.%s", outputFile, fileType.String()) return os.WriteFile(filePath, data, 0644) } func WriteHunterEmailToFile(result sqlite.HunterEmailFinderData, outputFile string, fileType files.FileType) error { var data []byte var err error switch fileType { case files.JSON: data, err = json.MarshalIndent(result, "", " ") case files.XML: data, err = xml.MarshalIndent(result, "", " ") case files.YAML: data, err = yaml.Marshal(result) case files.TEXT: data = []byte(result.String()) default: return err } if err != nil { return err } filePath := fmt.Sprintf("%s.%s", outputFile, fileType.String()) return os.WriteFile(filePath, data, 0644) } func WriteHunterEmailVerifyToFile(result sqlite.HunterEmailVerifyData, outputFile string, fileType files.FileType) error { var data []byte var err error switch fileType { case files.JSON: data, err = json.MarshalIndent(result, "", " ") case files.XML: data, err = xml.MarshalIndent(result, "", " ") case files.YAML: data, err = yaml.Marshal(result) case files.TEXT: data = []byte(result.String()) default: return err } if err != nil { return err } filePath := fmt.Sprintf("%s.%s", outputFile, fileType.String()) return os.WriteFile(filePath, data, 0644) } func WriteHunterCompanyEnrichmentToFile(result sqlite.CompanyData, outputFile string, fileType files.FileType) error { var data []byte var err error switch fileType { case files.JSON: data, err = json.MarshalIndent(result, "", " ") case files.XML: data, err = xml.MarshalIndent(result, "", " ") case files.YAML: data, err = yaml.Marshal(result) case files.TEXT: data = []byte(result.String()) default: return err } if err != nil { return err } filePath := fmt.Sprintf("%s.%s", outputFile, fileType.String()) return os.WriteFile(filePath, data, 0644) } func WriteHunterPersonEnrichmentToFile(result sqlite.PersonData, outputFile string, fileType files.FileType) error { var data []byte var err error switch fileType { case files.JSON: data, err = json.MarshalIndent(result, "", " ") case files.XML: data, err = xml.MarshalIndent(result, "", " ") case files.YAML: data, err = yaml.Marshal(result) case files.TEXT: data = []byte(result.String()) default: return err } if err != nil { return err } filePath := fmt.Sprintf("%s.%s", outputFile, fileType.String()) return os.WriteFile(filePath, data, 0644) } func WriteHunterCombinedEnrichmentToFile(result sqlite.CombinedData, outputFile string, fileType files.FileType) error { var data []byte var err error switch fileType { case files.JSON: data, err = json.MarshalIndent(result, "", " ") case files.XML: data, err = xml.MarshalIndent(result, "", " ") case files.YAML: data, err = yaml.Marshal(result) case files.TEXT: data = []byte(result.String()) default: return err } if err != nil { return err } filePath := fmt.Sprintf("%s.%s", outputFile, fileType.String()) return os.WriteFile(filePath, data, 0644) }