Compare commits

..

No commits in common. 'main' and 'v1.0.7' have entirely different histories.
main ... v1.0.7

@ -5,10 +5,7 @@ go 1.21.0
require ( require (
github.com/go-sql-driver/mysql v1.7.1 github.com/go-sql-driver/mysql v1.7.1
github.com/jmoiron/sqlx v1.3.5 github.com/jmoiron/sqlx v1.3.5
github.com/kataras/golog v0.1.11 github.com/kataras/pio v0.0.13
) )
require ( require golang.org/x/sys v0.13.0 // indirect
github.com/kataras/pio v0.0.13 // indirect
golang.org/x/sys v0.13.0 // indirect
)

@ -3,8 +3,6 @@ github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrt
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
github.com/kataras/golog v0.1.11 h1:dGkcCVsIpqiAMWTlebn/ZULHxFvfG4K43LF1cNWSh20=
github.com/kataras/golog v0.1.11/go.mod h1:mAkt1vbPowFUuUGvexyQ5NFW6djEgGyxQBIARJ0AH4A=
github.com/kataras/pio v0.0.13 h1:x0rXVX0fviDTXOOLOmr4MUxOabu1InVSTu5itF8CXCM= github.com/kataras/pio v0.0.13 h1:x0rXVX0fviDTXOOLOmr4MUxOabu1InVSTu5itF8CXCM=
github.com/kataras/pio v0.0.13/go.mod h1:k3HNuSw+eJ8Pm2lA4lRhg3DiCjVgHlP8hmXApSej3oM= github.com/kataras/pio v0.0.13/go.mod h1:k3HNuSw+eJ8Pm2lA4lRhg3DiCjVgHlP8hmXApSej3oM=
github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0= github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0=

@ -1,48 +1,45 @@
package seaweed
/*** /***
Пакет seaweed предназначен для облегчения работы с БД sea Пакет seaweed предназначен для облегчения работы с БД sea
и weed. и weed.
Текущая версия: v1.0.8 Текущая версия: v1.0.6
***/ ***/
package seaweed
import ( import (
"errors"
"fmt"
"os" "os"
"fmt"
"errors"
"flag"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
// "github.com/kataras/pio" "github.com/kataras/pio"
"github.com/kataras/golog"
) )
const VERSION = "v1.0.8" // глобальная переменная для логирования
var p = pio.NewTextPrinter("color", os.Stdout)
// ============= SEA ============ // ============= SEA ============
type Sea struct { type Sea struct {
db *sqlx.DB db *sqlx.DB
debug bool debug bool
} }
// Окрывает БД sea, соединяется с weed. func Connect() (*Sea, error) {
// Если options = true, то будут выводиться отладочные сообщения debug := flag.Bool("debug", false, "enable debug mode")
func Connect(options ...bool) (*Sea, error) { fmt.Printf("debug: %v\n", *debug)
debug := false
if len(options) > 0 && options[0] {
debug = true
}
user := os.Getenv("SEA_USER") user := os.Getenv("SEA_USER")
if user == "" { if user == "" {
return nil, errors.New("не установлена переменная SEA_USER") return nil, errors.New("Не установлена переменная SEA_USER")
} }
password := os.Getenv("SEA_PASSWORD") password := os.Getenv("SEA_PASSWORD")
if password == "" { if password == "" {
return nil, errors.New("не установлена переменная SEA_PASSWORD") return nil, errors.New("Не установлена переменная SEA_PASSWORD")
} }
db, err := openDB(user, password) db, err := openDB(user, password)
@ -50,12 +47,11 @@ func Connect(options ...bool) (*Sea, error) {
return nil, err return nil, err
} }
sea := Sea{db: db, debug: debug} if *debug {
p.Println(pio.Rich("БД sea успешно открыта", pio.Blue))
if debug {
golog.Infof("БД \"sea\" успешно открыта. %s", VERSION)
} }
sea := Sea{db: db, debug: *debug}
return &sea, nil return &sea, nil
} }
@ -78,7 +74,7 @@ type Album struct {
} }
// Albums возвращает список активных альбомов, // Albums возвращает список активных альбомов,
// без учета комиксов. Использует процедуру getAlbums в MySQL. // без учета комиксов.
func (s *Sea) Albums() ([]Album, error) { func (s *Sea) Albums() ([]Album, error) {
cmd := "call getAlbums()" cmd := "call getAlbums()"
var albums []Album var albums []Album
@ -86,9 +82,6 @@ func (s *Sea) Albums() ([]Album, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if s.debug {
golog.Infof("Получен список альбомов: %d", len(albums))
}
return albums, nil return albums, nil
} }

@ -1,67 +0,0 @@
/***
Пакет seaweed предназначен для облегчения работы с БД sea
и weed.
Текущая версия: v1.0.7
***/
package seaweed
import (
"os"
"testing"
_ "github.com/go-sql-driver/mysql"
)
func TestConnect(t *testing.T) {
t.Run("проверка создания", func(t *testing.T) {
user := os.Getenv("SEA_USER")
if user == "" {
t.Errorf("Не установлена env-переменная SEA_USER")
}
password := os.Getenv("SEA_PASSWORD")
if password == "" {
t.Errorf("Не установлена env-переменная SEA_PASSWORD")
}
// создание с признаком отладки
sea, err := Connect(true)
if err != nil {
t.Errorf("Ошибка создания: %v", err)
}
if sea.debug == false {
t.Errorf("Не установлен признак отладки")
}
// штатное создание
sea2, err := Connect()
if err != nil {
t.Errorf("Ошибка создания: %v", err)
}
if sea2.debug == true {
t.Errorf("Не правильно установлен признак отладки")
}
})
}
func TestAlbums(t *testing.T) {
t.Run("проверка получения списка альбомов", func(t *testing.T) {
// создание с признаком отладки
sea, err := Connect(true)
if err != nil {
t.Errorf("Ошибка создания: %v", err)
}
albums, err := sea.Albums()
if err != nil {
t.Errorf("Ошибка albums: %v", err)
}
if len(albums) == 0 {
t.Errorf("Получен пустой список альбомов")
}
})
}
Loading…
Cancel
Save