api

package
v0.0.0-...-e61e643 Latest Latest
Warning

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

Go to latest
Published: Mar 20, 2019 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package api contains the fundamental data types used by Go-NEB.

Most HTTP API calls and/or config file sections are just ways of representing these data types.

See also

Package "api.handlers" for information on the HTTP API calls.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientConfig

type ClientConfig struct {
	// The matrix User ID to connect with. E.g. @alice:matrix.org
	UserID string
	// A URL with the host and port of the matrix server. E.g. https://matrix.org:8448
	HomeserverURL string
	// The matrix access token to authenticate the requests with.
	AccessToken string
	// True to start a sync stream for this user, making this a "syncing client". If false, no
	// /sync goroutine will be created and this client won't listen for new events from Matrix. For services
	// which only SEND events into Matrix, it may be desirable to set Sync to false to reduce the
	// number of goroutines Go-NEB has to maintain. For services which respond to !commands,
	// Sync MUST be set to true in order to receive those commands.
	Sync bool
	// True to automatically join every room this client is invited to.
	// This is desirable for services which have !commands as that means anyone can pull the bot
	// into the room. It is up to the service to decide which, if any, users to respond to however.
	AutoJoinRooms bool
	// The desired display name for this client.
	// This does not automatically set the display name for this client. See /configureClient.
	DisplayName string
}

A ClientConfig contains the configuration information for a matrix client so that Go-NEB can drive it. It forms the HTTP body to /configureClient requests.

func (*ClientConfig) Check

func (c *ClientConfig) Check() error

Check that the client has supplied the correct fields.

type ConfigFile

type ConfigFile struct {
	Clients  []ClientConfig
	Realms   []ConfigureAuthRealmRequest
	Services []ConfigureServiceRequest
	Sessions []Session
}

ConfigFile represents config.sample.yaml

type ConfigureAuthRealmRequest

type ConfigureAuthRealmRequest struct {
	// An arbitrary unique identifier for this auth realm. This can be anything.
	// Using an existing ID will REPLACE the entire existing AuthRealm with the new information.
	ID string
	// The type of auth realm. This determines which code is loaded to execute the
	// auth realm. It must be a known type. E.g. "github".
	Type string
	// AuthRealm specific config information. See the docs for the auth realm you're interested in.
	Config json.RawMessage
}

ConfigureAuthRealmRequest is a request to /configureAuthRealm

func (*ConfigureAuthRealmRequest) Check

func (c *ConfigureAuthRealmRequest) Check() error

Check validates the /configureAuthRealm request

type ConfigureServiceRequest

type ConfigureServiceRequest struct {
	// An arbitrary unique identifier for this service. This can be anything.
	// Using an existing ID will REPLACE the entire Service with the new information.
	ID string
	// The type of service. This determines which code is loaded to execute the
	// service. It must be a known type, e.g. "github".
	Type string
	// The user ID of the configured client that this service will use to communicate with Matrix.
	// The user MUST already be configured.
	UserID string
	// Service-specific config information. See the docs for the service you're interested in.
	Config json.RawMessage
}

ConfigureServiceRequest is a request to /configureService

func (*ConfigureServiceRequest) Check

func (c *ConfigureServiceRequest) Check() error

Check validates the /configureService request

type RequestAuthSessionRequest

type RequestAuthSessionRequest struct {
	// The realm ID to request a new auth session on. The realm MUST already exist.
	RealmID string
	// The Matrix user ID requesting the auth session. If the auth is successful,
	// this user ID will be associated with the third-party credentials obtained.
	UserID string
	// AuthRealm specific config information. See the docs for the auth realm you're interested in.
	Config json.RawMessage
}

RequestAuthSessionRequest is a request to /requestAuthSession

func (*RequestAuthSessionRequest) Check

func (r *RequestAuthSessionRequest) Check() error

Check that the request is valid.

type Session

type Session struct {
	SessionID string
	RealmID   string
	UserID    string
	Config    json.RawMessage
}

Session contains the complete auth session information for a given user on a given realm. They are created for use with ConfigFile.

func (*Session) Check

func (c *Session) Check() error

Check validates the session config request

Directories

Path Synopsis
Package handlers contains the HTTP handlers for Go-NEB.
Package handlers contains the HTTP handlers for Go-NEB.

Jump to

Keyboard shortcuts

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