31 lines
742 B
Go
31 lines
742 B
Go
|
package http
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"fmt"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
type (
|
||
|
NotFound struct {
|
||
|
}
|
||
|
NotAllowed struct {
|
||
|
}
|
||
|
)
|
||
|
|
||
|
func (n NotFound) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
|
||
|
writer.WriteHeader(http.StatusNotFound)
|
||
|
json.NewEncoder(writer).Encode(responsePayload{
|
||
|
Code: http.StatusNotFound,
|
||
|
Reason: fmt.Sprintf("requested URL %s was not found on this server", request.URL.Path),
|
||
|
})
|
||
|
}
|
||
|
|
||
|
func (n NotAllowed) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
|
||
|
writer.WriteHeader(http.StatusMethodNotAllowed)
|
||
|
json.NewEncoder(writer).Encode(responsePayload{
|
||
|
Code: http.StatusMethodNotAllowed,
|
||
|
Reason: fmt.Sprintf("%s URL %s was not allow on this server", request.Method, request.URL.Path),
|
||
|
})
|
||
|
}
|