server

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2025 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	HealthAPITag         = "health"
	UsersAPITag          = "users"
	ItemsAPITag          = "items"
	FeedbackAPITag       = "feedback"
	RecommendationAPITag = "recommendation"
	MeasurementsAPITag   = "measurements"
	DetractedAPITag      = "deprecated"
)

Variables

View Source
var (
	RestAPIRequestSecondsVec = promauto.NewHistogramVec(prometheus.HistogramOpts{
		Namespace: "gorse",
		Subsystem: "server",
		Name:      "rest_api_request_seconds",
	}, []string{"api"})
)

Functions

func BadRequest

func BadRequest(response *restful.Response, err error)

BadRequest returns a bad request error.

func Error

func Error(response *restful.Response, httpStatus int, responseError error)

func InternalServerError

func InternalServerError(response *restful.Response, err error)

InternalServerError returns a internal server error.

func Ok

func Ok(response *restful.Response, content interface{})

Ok sends the content as JSON to the client.

func PageNotFound

func PageNotFound(response *restful.Response, err error)

PageNotFound returns a not found error.

func ParseDuration

func ParseDuration(request *restful.Request, name string) (time.Duration, error)

ParseDuration parses duration from the query parameter.

func ParseInt

func ParseInt(request *restful.Request, name string, fallback int) (value int, err error)

ParseInt parses integers from the query parameter.

func ReadCategories

func ReadCategories(request *restful.Request, defaultCategories []string) []string

ReadCategories tries to read categories from the request. If the category is not found, it returns an empty string.

func Text

func Text(response *restful.Response, content string)

Text returns a plain text.

Types

type Feedback

type Feedback struct {
	data.FeedbackKey
	Value     float64
	Timestamp string
	Comment   string
}

Feedback is the data structure for the feedback but stores the timestamp using string.

func (Feedback) ToDataFeedback

func (f Feedback) ToDataFeedback() (data.Feedback, error)

type FeedbackIterator

type FeedbackIterator struct {
	Cursor   string
	Feedback []data.Feedback
}

FeedbackIterator is the iterator for feedback.

type HealthStatus

type HealthStatus struct {
	Ready               bool
	DataStoreError      error
	CacheStoreError     error
	DataStoreConnected  bool
	CacheStoreConnected bool
}

type Item

type Item struct {
	ItemId     string
	IsHidden   bool
	Categories []string
	Timestamp  string
	Labels     any
	Comment    string
}

Item is the data structure for the item but stores the timestamp using string.

type ItemIterator

type ItemIterator struct {
	Cursor string
	Items  []data.Item
}

ItemIterator is the iterator for items.

type RestServer

type RestServer struct {
	Config      *config.Config
	CacheClient cache.Database
	DataClient  data.Database

	HttpHost string
	HttpPort int

	DisableLog bool
	WebService *restful.WebService
	HttpServer *http.Server
}

RestServer implements a REST-ful API server.

func (*RestServer) AuthFilter

func (s *RestServer) AuthFilter(req *restful.Request, resp *restful.Response, chain *restful.FilterChain)

func (*RestServer) CreateWebService

func (s *RestServer) CreateWebService()

CreateWebService creates web service.

func (*RestServer) LogFilter

func (s *RestServer) LogFilter(req *restful.Request, resp *restful.Response, chain *restful.FilterChain)

func (*RestServer) MetricsFilter

func (s *RestServer) MetricsFilter(req *restful.Request, resp *restful.Response, chain *restful.FilterChain)

func (*RestServer) SearchDocuments

func (s *RestServer) SearchDocuments(collection, subset string, categories []string,
	iteratee func(item cache.Score) (any, error),
	request *restful.Request, response *restful.Response,
)

func (*RestServer) SetLastModified

func (s *RestServer) SetLastModified(request *restful.Request, response *restful.Response, key string)

func (*RestServer) StartHttpServer

func (s *RestServer) StartHttpServer(container *restful.Container)

StartHttpServer starts the REST-ful API server.

type Server

type Server struct {
	RestServer
	// contains filtered or unexported fields
}

Server manages states of a server node.

func NewServer

func NewServer(
	masterHost string,
	masterPort int,
	serverHost string,
	serverPort int,
	cacheFile string,
	tlsConfig *util.TLSConfig,
) *Server

NewServer creates a server node.

func (*Server) Serve

func (s *Server) Serve()

Serve starts a server node.

func (*Server) ServerName

func (s *Server) ServerName() (string, error)

func (*Server) Shutdown

func (s *Server) Shutdown()

func (*Server) Sync

func (s *Server) Sync()

Sync this server to the master.

type Success

type Success struct {
	RowAffected int
}

Success is the returned data structure for data insert operations.

type UserIterator

type UserIterator struct {
	Cursor string
	Users  []data.User
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL