// package scene_web_worker -- веб-воркер  сцены
package scene_web_worker

import (
	"sync"
	"wartank/pkg/components/kernel/logger"
	"wartank/pkg/types"
)

/*
	Объект сетевого соединения
*/

// СценаВебВоркер -- объект сетевого соединения
type СценаВебВоркер struct {
	ботСеть   types.ИБотСеть
	вебВоркер types.ИХттпВоркер
	лог       types.ИЛоггер
	block     sync.Mutex
}

// НовСценаВебВоркер -- возвращает сетевого клиента
func НовСценаВебВоркер(ботСеть types.ИБотСеть) *СценаВебВоркер {
	лог := logger.НовЛоггер("СценаВебВоркер")
	лог.Инфо("НовСценаВебВоркер()\n")
	сам := &СценаВебВоркер{
		ботСеть:   ботСеть,
		вебВоркер: ботСеть.ВебВоркер(),
		лог:       лог,
	}
	return сам
}

// Получ -- выполняет безопасный GET-запрос в сеть
func (сам *СценаВебВоркер) Получ(ссылка string) (lstString []string, err error) {
	сам.block.Lock()
	defer сам.block.Unlock()
	// if ссылка == "https://wartank.ru/production/Mine" {
	сам.лог.Отладка("СценаВебВоркер.Получ(): link=%v\n", ссылка)
	// }
	списОтвет := сам.вебВоркер.Получ(ссылка)
	return списОтвет, nil
}
