mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2024-12-15 09:44:47 +02:00
356 lines
10 KiB
Go
356 lines
10 KiB
Go
package load_configs
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/ManyakRus/crud_generator/internal/config"
|
|
"github.com/ManyakRus/crud_generator/internal/constants"
|
|
"github.com/ManyakRus/crud_generator/internal/create_files"
|
|
"github.com/ManyakRus/crud_generator/internal/types"
|
|
"github.com/ManyakRus/crud_generator/pkg/dbmeta"
|
|
"github.com/ManyakRus/starter/log"
|
|
"github.com/ManyakRus/starter/micro"
|
|
"os"
|
|
)
|
|
|
|
func LoadConfigsAll() {
|
|
LoadMappings()
|
|
LoadNameReplace()
|
|
LoadNullable()
|
|
Load_TEXT_DB_MODIFIED_AT()
|
|
Load_TEXT_DB_CREATED_AT()
|
|
Load_TEXT_DB_IS_DELETED()
|
|
LoadConvertID()
|
|
LoadMapModelCrudDeleteFunctions()
|
|
LoadCrudFunctionsRename()
|
|
LoadFindBy()
|
|
LoadFindMassBy()
|
|
Load_MapPrimaryKeys()
|
|
}
|
|
|
|
// LoadMappings - загружает маппинг ТипБД = ТипGolang, из файла .json
|
|
func LoadMappings() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + "mapping.json"
|
|
err := dbmeta.LoadMappings(FileName, false)
|
|
if err != nil {
|
|
log.Panic("LoadMappings() error: ", err)
|
|
}
|
|
}
|
|
|
|
// LoadNameReplace - загружает маппинг ТипБД = ТипGolang, из файла .json
|
|
func LoadNameReplace() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_NAME_REPLACE_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
|
|
//json в map
|
|
//var MapServiceURL2 = make(map[string]string)
|
|
err = json.Unmarshal(bytes, &types.MapReplaceName)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
}
|
|
|
|
// LoadNullable - загружает список полей которые могут быть null
|
|
func LoadNullable() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_NULLABLE_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
|
|
//json в map
|
|
//var MapServiceURL2 = make(map[string]string)
|
|
err = json.Unmarshal(bytes, &types.MapNullableFileds)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
}
|
|
|
|
// Load_TEXT_DB_MODIFIED_AT - загружает текст DB_MODIFIED_AT
|
|
func Load_TEXT_DB_MODIFIED_AT() {
|
|
DirTemplatesDB := create_files.Find_Template_DB_Foldername()
|
|
FileName := DirTemplatesDB + "modified_at.go_"
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Error(TextError)
|
|
}
|
|
|
|
config.Settings.TEXT_DB_MODIFIED_AT = string(bytes)
|
|
|
|
}
|
|
|
|
// Load_TEXT_DB_IS_DELETED - загружает текст DB_IS_DELETED
|
|
func Load_TEXT_DB_IS_DELETED() {
|
|
DirTemplatesDB := create_files.Find_Template_DB_Foldername()
|
|
FileName := DirTemplatesDB + "is_deleted.go_"
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Error(TextError)
|
|
}
|
|
|
|
config.Settings.TEXT_DB_IS_DELETED = string(bytes)
|
|
|
|
}
|
|
|
|
// LoadConvertID - загружает map: ИмяТаблицы:Тип
|
|
func LoadConvertID() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_CONVERT_ID_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
|
|
//json в map
|
|
//var MapServiceURL2 = make(map[string]string)
|
|
err = json.Unmarshal(bytes, &types.MapConvertID)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
}
|
|
|
|
// LoadMapModelCrudDeleteFunctions - загружает map ИмяТаблицыPostgres:ИмяФункцииGolang
|
|
func LoadMapModelCrudDeleteFunctions() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_MODEL_CRUD_DELETE_FUNCTIONS_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
|
|
//json в map
|
|
//var MapServiceURL2 = make(map[string]string)
|
|
err = json.Unmarshal(bytes, &types.MapModelCrudDeleteFunctions)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
}
|
|
|
|
// Load_TEXT_DB_CREATED_AT - загружает текст created_at.go_
|
|
func Load_TEXT_DB_CREATED_AT() {
|
|
DirTemplatesDB := create_files.Find_Template_DB_Foldername()
|
|
FileName := DirTemplatesDB + "created_at.go_"
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Error(TextError)
|
|
}
|
|
|
|
config.Settings.TEXT_DB_CREATED_AT = string(bytes)
|
|
|
|
}
|
|
|
|
// LoadCrudFunctionsRename - загружает маппинг ИмяТаблицы:{old:"",new:""}
|
|
func LoadCrudFunctionsRename() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_CRUD_FUNCTIONS_RENAME_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
|
|
//json в map
|
|
//var MapServiceURL2 = make(map[string]string)
|
|
err = json.Unmarshal(bytes, &types.MapRenameFunctions)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
}
|
|
|
|
// LoadFindBy - загружает из файла .json список функций FindBy которые надо создать
|
|
func LoadFindBy() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_FINDBY_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
//json в map
|
|
err = json.Unmarshal(bytes, &types.MassFindBy_String)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
}
|
|
|
|
// LoadFindMassBy - загружает из файла .json список функций FindMassBy которые надо создать
|
|
func LoadFindMassBy() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_FINDMASSBY_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
|
|
//json в map
|
|
err = json.Unmarshal(bytes, &types.MassFindMassBy_String)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
}
|
|
|
|
// LoadReadAll - загружает из файла .json список таблиц, для которых нужна функция ReadAll()
|
|
func LoadReadAll(MapAll map[string]*types.Table) map[*types.Table]bool {
|
|
Otvet := make(map[*types.Table]bool)
|
|
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_READALL_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
|
|
MapStrings := make(map[string]string, 0)
|
|
|
|
//json в map strings
|
|
err = json.Unmarshal(bytes, &MapStrings)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
//map strings в map tables
|
|
for MapName1, _ := range MapStrings {
|
|
Table1, ok := MapAll[MapName1]
|
|
if ok == false {
|
|
log.Debug("Table not found: ", MapName1)
|
|
continue
|
|
}
|
|
Otvet[Table1] = true
|
|
}
|
|
|
|
return Otvet
|
|
}
|
|
|
|
// Load_MapPrimaryKeys - загружает маппинг ТипБД = ТипGolang, из файла .json
|
|
func Load_MapPrimaryKeys() {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_NAME_PRIMARYKEYS_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
|
|
//json в map
|
|
err = json.Unmarshal(bytes, &types.MapPrimaryKeys)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
}
|
|
|
|
// LoadFindModelBy - загружает из файла .json список функций FindModelBy которые надо создать
|
|
func LoadFindModelBy(MapTables map[string]*types.Table) {
|
|
dir := micro.ProgramDir_bin()
|
|
FileName := dir + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile() + constants.CONFIG_FOLDER_NAME + micro.SeparatorFile() + config.Settings.TEMPLATES_FINDMODELBY_FILENAME
|
|
|
|
var err error
|
|
|
|
//чтение файла
|
|
bytes, err := os.ReadFile(FileName)
|
|
if err != nil {
|
|
TextError := fmt.Sprint("ReadFile() error: ", err)
|
|
log.Panic(TextError)
|
|
}
|
|
//json в map, строки
|
|
MassTableColumn_string := make([]types.TableColumn_string, 0)
|
|
err = json.Unmarshal(bytes, &MassTableColumn_string)
|
|
if err != nil {
|
|
log.Panic("Unmarshal() error: ", err)
|
|
}
|
|
|
|
//map strings в map tables
|
|
for _, TableColumn_string1 := range MassTableColumn_string {
|
|
Table1, ok := MapTables[TableColumn_string1.TableName]
|
|
if ok == false {
|
|
log.Error("Table not found: ", TableColumn_string1.TableName)
|
|
continue
|
|
}
|
|
|
|
Column1, ok := Table1.MapColumns[TableColumn_string1.ColumnName]
|
|
if ok == false {
|
|
log.Panic("Column not found: ", TableColumn_string1.ColumnName)
|
|
}
|
|
|
|
if Column1.TableKey == "" || Column1.ColumnKey == "" {
|
|
log.Panic("error: foreign key is empty fot table: ", Table1.Name, " column: ", Column1.Name)
|
|
}
|
|
|
|
TableColumn1 := types.TableColumn{}
|
|
TableColumn1.Table = Table1
|
|
TableColumn1.Column = Column1
|
|
types.MassFindModelBy = append(types.MassFindModelBy, TableColumn1)
|
|
}
|
|
|
|
}
|