package bot_cookie

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

/*
	Предоставляет разделяемый объект кукисов для соединения с игровым сервером
*/

// BotCookie -- кукисы для игрового сервера, ничего не требует для своей работы
type BotCookie struct {
	cookie []*http.Cookie
	block  sync.RWMutex
	лог types.ИЛоггер
}

// NewBotCookie -- возвращает новый *NetCookie
func NewBotCookie() BotCookie {
	лог:=logger.НовЛоггер("NetCookie")
	лог.Инфо("NetCookie()\n")
	return BotCookie{
		лог: лог,
	}
}

// Уст -- устанавливает кукисы
func (сам *BotCookie) Уст(cook []*http.Cookie) {
	сам.block.Lock()
	defer сам.block.Unlock()
	сам.лог.Паника(cook == nil, "NetCookie.Уст(): cookie == nil")
	сам.cookie = cook
	cookie := http.Cookie{
		Name:  "JSESSIONID",
		Value: сам.cookie[0].Value,
		Raw:   "JSESSIONID=" + сам.cookie[0].Value + "; _ym_uid=1642083867571238834; _ym_d=1642083867; _ym_isad=2; _ym_visorc=w",
	}
	cookie1 := сам.cookie[:0]
	сам.cookie = cookie1
	сам.cookie = append(сам.cookie, &cookie)

	cookie = http.Cookie{
		Name:  "_ym_d",
		Value: "1642083867",
	}
	сам.cookie = append(сам.cookie, &cookie)

	cookie = http.Cookie{
		Name:  "_ym_isad",
		Value: "2",
	}
	сам.cookie = append(сам.cookie, &cookie)

	cookie = http.Cookie{
		Name:  "_ym_visorc",
		Value: "w",
	}
	сам.cookie = append(сам.cookie, &cookie)
}

// Получ -- возвращает хранимые кукисы
func (сам *BotCookie) Получ() []*http.Cookie {
	return сам.cookie
}
