api

package
v1.14.0 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2024 License: MIT Imports: 50 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// None defines to run http server only
	None sslMode = iota

	// Static defines to run both https and http server. Redirect http to https
	Static

	// Auto defines to run both https and http server. Redirect http to https. Https server with autocert support
	Auto
)

Variables

This section is empty.

Functions

func URLKey

func URLKey(r *http.Request) string

URLKey gets url from request to use it as cache key admins will have different keys in order to prevent leak of admin-only data to regular users

func URLKeyWithUser

func URLKeyWithUser(r *http.Request) string

URLKeyWithUser gets url from request to use it as cache key and attaching user ID admins will have different keys in order to prevent leak of admin-only data to regular users

Types

type KeyStore

type KeyStore interface {
	Key(siteID string) (key string, err error)
}

KeyStore defines sub-interface for consumers needed just a key

type LoadingCache

type LoadingCache interface {
	Get(key lcw.Key, fn func() ([]byte, error)) (data []byte, err error) // load from cache if found or put to cache and return
	Flush(req lcw.FlusherRequest)                                        // evict matched records
	Close() error
}

LoadingCache defines interface for caching

type Migrator

type Migrator struct {
	Cache             LoadingCache
	NativeImporter    migrator.Importer
	DisqusImporter    migrator.Importer
	WordPressImporter migrator.Importer
	CommentoImporter  migrator.Importer
	NativeExporter    migrator.Exporter
	URLMapperMaker    migrator.MapperMaker
	KeyStore          KeyStore
	// contains filtered or unexported fields
}

Migrator rest with import and export controllers

type Rest

type Rest struct {
	Version string

	DataService      *service.DataStore
	Authenticator    *auth.Service
	Cache            LoadingCache
	ImageProxy       *proxy.Image
	CommentFormatter *store.CommentFormatter
	Migrator         *Migrator
	NotifyService    *notify.Service
	TelegramService  telegramService
	ImageService     *image.Service

	AnonVote        bool
	WebRoot         string
	WebFS           embed.FS
	RemarkURL       string
	ReadOnlyAge     int
	SharedSecret    string
	ScoreThresholds struct {
		Low      int
		Critical int
	}
	UpdateLimiter              float64
	EmailNotifications         bool
	TelegramNotifications      bool
	EmojiEnabled               bool
	SimpleView                 bool
	ProxyCORS                  bool
	SendJWTHeader              bool
	AllowedAncestors           []string // sets Content-Security-Policy "frame-ancestors ..."
	SubscribersOnly            bool
	DisableSignature           bool // prevent signature from being added to headers
	DisableFancyTextFormatting bool // disables SmartyPants in the comment text rendering of the posted comments
	ExternalImageProxy         bool

	SSLConfig SSLConfig
	// contains filtered or unexported fields
}

Rest is a rest access server

func (*Rest) Run

func (s *Rest) Run(address string, port int)

Run the lister and request's router, activate rest server

func (*Rest) Shutdown

func (s *Rest) Shutdown()

Shutdown rest http server

type SSLConfig

type SSLConfig struct {
	SSLMode      sslMode
	Cert         string
	Key          string
	Port         int
	ACMELocation string
	ACMEEmail    string
}

SSLConfig holds all ssl params for rest server

Jump to

Keyboard shortcuts

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