api

package
v0.0.0-...-fd752eb Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2020 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// TokenExpiration ...
	TokenExpiration = time.Hour * 24
	// TokenAlgorithm ...
	TokenAlgorithm = "HS256"
)
View Source
var (
	// ErrInactiveAccessKey ...
	ErrInactiveAccessKey = errors.New("Inactive access key")
	// ErrTokenRevoked ...
	ErrTokenRevoked = errors.New("Token revoked")
	// ErrIssuer ...
	ErrIssuer = errors.New("Wrong Issuer for token")
)

Functions

func GenerateToken

func GenerateToken(auth *db.Auth, expiration time.Duration, starts time.Duration, room, peer, algo string) (string, error)

GenerateToken generate token

Types

type Admin

type Admin struct {
	Enabled  bool   `mapstructure:"enabled,omitempty"`
	Email    string `mapstructure:"email,omitempty"`
	Password string `mapstructure:"password,omitempty"`
	Update   bool   `mapstructure:"update,omitempty"`
}

Admin account

type Auth

type Auth struct {
	*db.Auth
	PeerID string
	RoomID string
}

Auth object

func ValidateToken

func ValidateToken(ctx context.Context, tokenString string) (*Auth, error)

ValidateToken validate token

func (*Auth) Validate

func (t *Auth) Validate() error

Validate validate auth object

type BaseController

type BaseController struct {
	// contains filtered or unexported fields
}

BaseController ...

func (*BaseController) Name

func (controller *BaseController) Name() string

Name ...

func (*BaseController) Prefix

func (controller *BaseController) Prefix() string

Prefix ...

type BaseResource

type BaseResource struct{}

BaseResource ...

func (*BaseResource) Authorization

func (resource *BaseResource) Authorization(*log.Logger, *http.Request) error

Authorization .. check resource access

func (*BaseResource) DefaultMethod

func (resource *BaseResource) DefaultMethod(logger *log.Logger, request *http.Request) (schema.Schema, error)

DefaultMethod ...

func (*BaseResource) Delete

func (resource *BaseResource) Delete(logger *log.Logger, request *http.Request) (schema.Schema, error)

Delete ...

func (*BaseResource) Get

func (resource *BaseResource) Get(logger *log.Logger, request *http.Request) (schema.Schema, error)

Get get method

func (*BaseResource) Head

func (resource *BaseResource) Head(logger *log.Logger, request *http.Request) (schema.Schema, error)

Head ...

func (*BaseResource) Options

func (resource *BaseResource) Options(logger *log.Logger, request *http.Request) (schema.Schema, error)

Options ...

func (*BaseResource) Patch

func (resource *BaseResource) Patch(logger *log.Logger, request *http.Request) (schema.Schema, error)

Patch ...

func (*BaseResource) Post

func (resource *BaseResource) Post(logger *log.Logger, request *http.Request) (schema.Schema, error)

Post ...

func (*BaseResource) Put

func (resource *BaseResource) Put(logger *log.Logger, request *http.Request) (schema.Schema, error)

Put ...

type Claims

type Claims struct {
	AccessKey string `json:"access_key"`
	AppID     string `json:"app_id"`
	PeerID    string `json:"peer_id,omitempty"`
	RoomID    string `json:"room_id,omitempty"`
	jwt.StandardClaims
}

Claims defines jwt claims

func (*Claims) Valid

func (claims *Claims) Valid() error

Valid ...

type Config

type Config struct {
	Prefix    string  `mapstructure:"prefix,omitempty"`
	Port      int     `mapstructure:"port,omitempty"`
	Algorithm string  `mapstructure:"algo,omitempty"`
	Cert      string  `mapstructure:"cert,omitempty"`
	Key       string  `mapstructure:"key,omitempty"`
	UTC       bool    `mapstructure:"utc,omitempty"`
	Admins    []Admin `mapstructure:"admin,omitempty"`
	Setup     bool    `mapstructure:"setup,omitempty"`
}

Config ...

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig ...

type Controller

type Controller interface {
	Name() string
	Prefix() string
	ServeHTTP(http.ResponseWriter, *http.Request)
}

Controller ...

func NewLoginController

func NewLoginController() Controller

NewLoginController ...

func NewModelController

func NewModelController(model db.Model) Controller

NewModelController ...

func NewTokenController

func NewTokenController() Controller

NewTokenController ...

type Login

type Login struct {
	Email    string `json:"email"`
	Password string `json:"password"`
	Expiry   int    `json:"expiry"`
}

Login login

type LoginResource

type LoginResource struct {
	BaseResource
}

LoginResource auth resource

func (*LoginResource) Post

func (resource *LoginResource) Post(logger *log.Logger, request *http.Request) (schema.Schema, error)

Post ...

type Middleware

type Middleware func(next http.Handler) http.Handler

Middleware middleware

func Authentication

func Authentication() Middleware

Authentication authenticate incoming requests

func Logging

func Logging(exclude ...string) Middleware

Logging logging http request

func ProxyForwarder

func ProxyForwarder() Middleware

ProxyForwarder ...

func Recovery

func Recovery(stack bool) Middleware

Recovery recover panic in http request

func StripPrefix

func StripPrefix(prefix string) Middleware

StripPrefix strip prefix

func Tracing

func Tracing() Middleware

Tracing tracing http reqeust with requestID

type ModelResource

type ModelResource struct {
	BaseResource
	// contains filtered or unexported fields
}

ModelResource ...

func (*ModelResource) Authorization

func (resource *ModelResource) Authorization(logger *log.Logger, request *http.Request) error

Authorization ...

func (*ModelResource) Delete

func (resource *ModelResource) Delete(logger *log.Logger, request *http.Request) (schema.Schema, error)

Delete ...

func (*ModelResource) Get

func (resource *ModelResource) Get(logger *log.Logger, request *http.Request) (schema.Schema, error)

Get ...

func (*ModelResource) Post

func (resource *ModelResource) Post(logger *log.Logger, request *http.Request) (schema.Schema, error)

Post ...

type Resource

Resource ...

type ResourceController

type ResourceController struct {
	BaseController
	// contains filtered or unexported fields
}

ResourceController ...

func (*ResourceController) ServeHTTP

func (controller *ResourceController) ServeHTTP(writer http.ResponseWriter, request *http.Request)

ServeHTTP resource HTTP

type Service

type Service struct {
	Prefix string
	// contains filtered or unexported fields
}

Service ...

func New

func New(config *Config) *Service

New service

func (*Service) AddRoute

func (service *Service) AddRoute(route string, handler http.Handler)

AddRoute add route for service

func (*Service) Setup

func (service *Service) Setup()

Setup Service setup routines

func (*Service) Start

func (service *Service) Start() error

Start start service

func (*Service) Status

func (service *Service) Status() bool

Status get status

func (*Service) Wait

func (service *Service) Wait()

Wait ...

type TokenResource

type TokenResource struct {
	BaseResource
}

TokenResource ...

func (*TokenResource) Get

func (resource *TokenResource) Get(logger *log.Logger, request *http.Request) (schema.Schema, error)

Get ...

Jump to

Keyboard shortcuts

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