You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.1 KiB

package internal
import (
"encoding/json"
"net/http"
)
func (a *adminHandler) addRecursor(r *http.Request) (*RestResponse, error) {
var recursorHttpInput RecursorRow
if err := json.NewDecoder(r.Body).Decode(&recursorHttpInput); err != nil {
return ErrorResponse(http.StatusUnprocessableEntity, err), nil
}
ipAddr, port, ok := recursorHttpInput.ValidIp()
if !ok {
return BasicResponse(false, "The ip address provided is invalid."), nil
}
if err := a.Storage.AddRecursors(ipAddr, port, recursorHttpInput.TimeoutMs, recursorHttpInput.Weight); err != nil {
return nil, err
}
return BasicResponse(true, recursorHttpInput), nil
}
func (a *adminHandler) getRecursors(r *http.Request) (*RestResponse, error) {
recursors, err := a.Storage.GetRecursors()
if err != nil {
return nil, err
}
return BasicResponse(true, recursors), nil
}
func (a *adminHandler) getRecursor(r *http.Request) (*RestResponse, error) {
return BasicResponse(false, "Nothing here yet"), nil
}
func (a *adminHandler) deleteRecursor(r *http.Request) (*RestResponse, error) {
return BasicResponse(false, "Nothing here yet"), nil
}