package net

import (
	"net"

	"git.frostfs.info/TrueCloudLab/frostfs-http-gw/internal/logs"
	"go.uber.org/zap"
)

type LogEventHandler struct {
	logger *zap.Logger
}

func (l LogEventHandler) DialPerformed(sourceIP net.Addr, _, address string, err error) {
	sourceIPString := "undefined"
	if sourceIP != nil {
		sourceIPString = sourceIP.Network() + "://" + sourceIP.String()
	}
	if err == nil {
		l.logger.Debug(logs.MultinetDialSuccess, zap.String("source", sourceIPString),
			zap.String("destination", address), logs.TagField(logs.TagApp))
	} else {
		l.logger.Debug(logs.MultinetDialFail, zap.String("source", sourceIPString),
			zap.String("destination", address), logs.TagField(logs.TagApp))
	}
}

func NewLogEventHandler(logger *zap.Logger) LogEventHandler {
	return LogEventHandler{logger: logger}
}