1
0
mirror of https://github.com/ManyakRus/starter.git synced 2025-11-24 22:53:52 +02:00
Files
starter/microl/microl.go

210 lines
6.8 KiB
Go
Raw Normal View History

2024-11-11 16:36:51 +03:00
// пакет для микрофункций с логгером
package microl
import (
2024-11-28 16:59:40 +03:00
"fmt"
2024-11-29 14:33:29 +03:00
"github.com/ManyakRus/starter/constants"
2024-11-11 16:36:51 +03:00
"github.com/ManyakRus/starter/log"
2024-11-28 16:59:40 +03:00
"github.com/ManyakRus/starter/micro"
2024-11-11 16:36:51 +03:00
"os"
2024-11-29 14:33:29 +03:00
"strconv"
"time"
2024-11-11 16:36:51 +03:00
)
// Getenv - возвращает переменную окружения
func Getenv(Name string, IsRequired bool) string {
TextError := "Need fill OS environment variable: "
Otvet := os.Getenv(Name)
if IsRequired == true && Otvet == "" {
log.Error(TextError + Name)
}
return Otvet
}
2024-11-28 16:59:40 +03:00
// Set_FieldFromEnv_String - устанавливает значение поля из переменной окружения
// Параметры:
// Object - указатель на структуру
// FieldName - имя поля
2024-11-29 14:33:29 +03:00
// IsRequired - обязательное ли поле
2024-11-28 16:59:40 +03:00
func Set_FieldFromEnv_String(StructReference any, FieldName string, IsRequired bool) {
Value := Getenv(FieldName, IsRequired)
err := micro.SetFieldValue(StructReference, FieldName, Value)
if err != nil {
err = fmt.Errorf("SetFieldFrom() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
}
2024-11-29 14:33:29 +03:00
// Set_FieldFromEnv_Int - устанавливает значение поля из переменной окружения
// Параметры:
// Object - указатель на структуру
// FieldName - имя поля
// IsRequired - обязательное ли поле
func Set_FieldFromEnv_Int(StructReference any, FieldName string, IsRequired bool) {
sValue := Getenv(FieldName, IsRequired)
Value, err := strconv.Atoi(sValue)
if err != nil {
err = fmt.Errorf("Atoi() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
err = micro.SetFieldValue(StructReference, FieldName, Value)
if err != nil {
err = fmt.Errorf("SetFieldFrom() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
}
// Set_FieldFromEnv_Int64 - устанавливает значение поля из переменной окружения
// Параметры:
// Object - указатель на структуру
// FieldName - имя поля
// IsRequired - обязательное ли поле
func Set_FieldFromEnv_Int64(StructReference any, FieldName string, IsRequired bool) {
sValue := Getenv(FieldName, IsRequired)
Value, err := strconv.ParseInt(sValue, 10, 64)
if err != nil {
err = fmt.Errorf("ParseInt() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
err = micro.SetFieldValue(StructReference, FieldName, Value)
if err != nil {
err = fmt.Errorf("SetFieldFrom() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
}
// Set_FieldFromEnv_Int32 - устанавливает значение поля из переменной окружения
// Параметры:
// Object - указатель на структуру
// FieldName - имя поля
// IsRequired - обязательное ли поле
func Set_FieldFromEnv_Int32(StructReference any, FieldName string, IsRequired bool) {
sValue := Getenv(FieldName, IsRequired)
var Value int32
Value, err := micro.Int32FromString(sValue)
if err != nil {
err = fmt.Errorf("ParseInt() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
err = micro.SetFieldValue(StructReference, FieldName, Value)
if err != nil {
err = fmt.Errorf("SetFieldFrom() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
}
// Set_FieldFromEnv_Time - устанавливает значение поля из переменной окружения
// Параметры:
// Object - указатель на структуру
// FieldName - имя поля
// IsRequired - обязательное ли поле
func Set_FieldFromEnv_Time(StructReference any, FieldName string, IsRequired bool) {
sValue := Getenv(FieldName, IsRequired)
Value, err := time.Parse(constants.LayoutDateTimeRus, sValue)
if err != nil {
err = fmt.Errorf("time.Parse() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
err = micro.SetFieldValue(StructReference, FieldName, Value)
if err != nil {
err = fmt.Errorf("SetFieldFrom() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
}
// Set_FieldFromEnv_Date - устанавливает значение поля из переменной окружения
// Параметры:
// Object - указатель на структуру
// FieldName - имя поля
// IsRequired - обязательное ли поле
func Set_FieldFromEnv_Date(StructReference any, FieldName string, IsRequired bool) {
sValue := Getenv(FieldName, IsRequired)
Value, err := time.Parse(constants.LayoutDateRus, sValue)
if err != nil {
err = fmt.Errorf("time.Parse() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
err = micro.SetFieldValue(StructReference, FieldName, Value)
if err != nil {
err = fmt.Errorf("SetFieldFrom() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
}
2024-12-02 13:58:30 +03:00
// Set_FieldFromEnv_Bool - устанавливает значение поля из переменной окружения
// Параметры:
// Object - указатель на структуру
// FieldName - имя поля
// IsRequired - обязательное ли поле
func Set_FieldFromEnv_Bool(StructReference any, FieldName string, IsRequired bool) {
sValue := Getenv(FieldName, IsRequired)
Value := micro.BoolFromString(sValue)
err := micro.SetFieldValue(StructReference, FieldName, Value)
if err != nil {
err = fmt.Errorf("SetFieldFrom() FieldName: %s error: %w", FieldName, err)
log.Error(err)
return
}
}
2024-12-02 14:28:04 +03:00
// ShowTimePassed - показывает время прошедшее с момента старта
// запускать:
// defer micro.ShowTimePassed(time.Now())
func ShowTimePassed(StartAt time.Time) {
log.Debugf("Time passed: %s\n", time.Since(StartAt))
}
// ShowTimePassed_FormatText - показывает время прошедшее с момента старта
// запускать:
// defer micro.ShowTimePassed(time.Now())
func ShowTimePassed_FormatText(FormatText string, StartAt time.Time) {
log.Debugf(FormatText, time.Since(StartAt))
}
// ShowTimePassedSeconds - показывает время секунд прошедшее с момента старта
// запускать:
// defer micro.ShowTimePassedSeconds(time.Now())
func ShowTimePassedSeconds(StartAt time.Time) {
log.Debugf("Time passed: %s\n", time.Since(StartAt).Round(time.Second))
}
// ShowTimePassedMilliSeconds - показывает время миллисекунд прошедшее с момента старта
// запускать:
// defer micro.ShowTimePassedMilliSeconds(time.Now())
func ShowTimePassedMilliSeconds(StartAt time.Time) {
log.Debugf("Time passed: %s\n", time.Since(StartAt).Round(time.Millisecond))
}