mirror of
https://github.com/openfaas/faas.git
synced 2025-06-08 16:26:47 +00:00
30 lines
679 B
Go
30 lines
679 B
Go
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)
|
|
|
|
}
|