- CRUD REST HTTP server - `/v1` HTTP server prefix - Retrocompatible with older routes (redirects to v1 or handles the requests directly) - DNS, Updater and Openvpn refactored to have a REST-like state with new methods to change their states synchronously - Openvpn, Unbound and Updater status, see #287
33 lines
653 B
Go
33 lines
653 B
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/qdm12/gluetun/internal/constants"
|
|
"github.com/qdm12/gluetun/internal/models"
|
|
)
|
|
|
|
type statusWrapper struct {
|
|
Status string `json:"status"`
|
|
}
|
|
|
|
func (sw *statusWrapper) getStatus() (status models.LoopStatus, err error) {
|
|
status = models.LoopStatus(sw.Status)
|
|
switch status {
|
|
case constants.Stopped, constants.Running:
|
|
return status, nil
|
|
default:
|
|
return "", fmt.Errorf(
|
|
"invalid status %q: possible values are: %s, %s",
|
|
sw.Status, constants.Stopped, constants.Running)
|
|
}
|
|
}
|
|
|
|
type portWrapper struct {
|
|
Port uint16 `json:"port"`
|
|
}
|
|
|
|
type outcomeWrapper struct {
|
|
Outcome string `json:"outcome"`
|
|
}
|