package requests

import "fmt"
import "net/url"

// ForwardRequest for proxying incoming requests
type ForwardRequest struct {
	RawPath  string
	RawQuery string
	Method   string
}

// NewForwardRequest create a ForwardRequest
func NewForwardRequest(method string, url url.URL) ForwardRequest {
	return ForwardRequest{
		Method:   method,
		RawQuery: url.RawQuery,
		RawPath:  url.Path,
	}
}

// ToURL create formatted URL
func (f *ForwardRequest) ToURL(addr string, watchdogPort int) string {
	if len(f.RawQuery) > 0 {
		return fmt.Sprintf("http://%s:%d%s?%s", addr, watchdogPort, f.RawPath, f.RawQuery)
	}
	return fmt.Sprintf("http://%s:%d%s", addr, watchdogPort, f.RawPath)

}