slackoverload

package
v0.0.0-...-ed19c4f Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2020 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SessionName   = "slackoverload-auth"
	SessionUserId = "user-id"
)
View Source
const (
	PresenceAway   = "away"
	PresenceActive = "auto"
	SlackOAuthURL  = "https://slack.com/api/oauth.v2.access"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Action

type Action struct {
	Presence    Presence `json:"presence"`
	StatusText  string   `json:"status-text,omitempty"`
	StatusEmoji string   `json:"status-emoji,omitempty"`
	DnD         bool     `json:"dnd,omitempty"`
	Duration    string   `json:"duration,omitempty"`
}

func (Action) DurationInMinutes

func (a Action) DurationInMinutes() int64

func (Action) ParseDuration

func (a Action) ParseDuration() (time.Duration, error)

type ActionTemplate

type ActionTemplate struct {
	Name   string `json:"name"`
	TeamId string `json:"team"`
	Action `json:"action"`
}

func (ActionTemplate) ToString

func (t ActionTemplate) ToString() string

type App

type App struct {
	Debug bool
	Storage
	Secrets
}

func (*App) ClearStatus

func (a *App) ClearStatus(r ClearStatusRequest) (slack.Msg, error)

func (*App) CreateTrigger

func (a *App) CreateTrigger(r CreateTriggerRequest) (slack.Msg, error)

CreateTrigger accepts a trigger definition and saves it

func (*App) DeleteTrigger

func (a *App) DeleteTrigger(r DeleteTriggerRequest) (slack.Msg, error)

func (*App) Init

func (a *App) Init(secrets Secrets) error

func (*App) LinkSlack

func (a *App) LinkSlack(r SlackPayload) (slack.Msg, error)

func (*App) ListTriggers

func (a *App) ListTriggers(r ListTriggersRequest) (slack.Msg, error)

func (*App) RefreshOAuthToken

func (a *App) RefreshOAuthToken(r OAuthRequest) (string, error)

func (*App) Trigger

func (a *App) Trigger(r TriggerRequest) (slack.Msg, error)

type ClearStatusRequest

type ClearStatusRequest struct {
	SlackPayload
	Global bool
}

type CreateTriggerRequest

type CreateTriggerRequest struct {
	SlackPayload
}

func (CreateTriggerRequest) GetDefinition

func (r CreateTriggerRequest) GetDefinition() string

type DeleteTriggerRequest

type DeleteTriggerRequest struct {
	SlackPayload
}

func (DeleteTriggerRequest) GetName

func (r DeleteTriggerRequest) GetName() string

type ListTriggersRequest

type ListTriggersRequest struct {
	SlackPayload
	Global bool
}

type OAuthRequest

type OAuthRequest struct {
	UserId    string
	AuthGrant string
}

type OAuthResponse

type OAuthResponse struct {
	Team OAuthTeam `json:"team"`
	User OAuthUser `json:"authed_user"`
}

type OAuthTeam

type OAuthTeam struct {
	Id   string `json:"id"`
	Name string `json:"name"`
}

type OAuthUser

type OAuthUser struct {
	Id          string `json:"id"`
	Scopes      string `json:"scope"`
	AccessToken string `json:"access_token"`
}

type Presence

type Presence string

type Secrets

type Secrets struct {
	Client keyvault.BaseClient
}

func NewSecretsClient

func NewSecretsClient() (Secrets, error)

func (*Secrets) GetSecret

func (s *Secrets) GetSecret(key string) (string, map[string]*string, error)

func (*Secrets) GetSessionKey

func (s *Secrets) GetSessionKey() (string, error)

func (*Secrets) GetSlackClientId

func (s *Secrets) GetSlackClientId() (string, error)

func (*Secrets) GetSlackClientSecret

func (s *Secrets) GetSlackClientSecret() (string, error)

func (*Secrets) GetSlackSigningSecret

func (s *Secrets) GetSlackSigningSecret() (string, error)

func (*Secrets) SetSecret

func (s *Secrets) SetSecret(key string, value string, tags map[string]*string) error

type Session

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

func (Session) GetUserId

func (s Session) GetUserId() string

func (Session) Save

func (s Session) Save() error

func (Session) SetUserId

func (s Session) SetUserId(value string)

type SessionStore

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

func (*SessionStore) GetCurrentSession

func (s *SessionStore) GetCurrentSession(request *http.Request, writer http.ResponseWriter) (Session, error)

func (*SessionStore) Init

func (s *SessionStore) Init(secrets Secrets) error

type SlackHandler

type SlackHandler struct {
	SessionStore
	App
	// contains filtered or unexported fields
}

func (*SlackHandler) HandleClearStatus

func (h *SlackHandler) HandleClearStatus(writer http.ResponseWriter, request *http.Request)

func (*SlackHandler) HandleCreateTrigger

func (h *SlackHandler) HandleCreateTrigger(writer http.ResponseWriter, request *http.Request)

func (*SlackHandler) HandleDeleteTrigger

func (h *SlackHandler) HandleDeleteTrigger(writer http.ResponseWriter, request *http.Request)

func (*SlackHandler) HandleHealth

func (h *SlackHandler) HandleHealth(writer http.ResponseWriter, request *http.Request)

func (*SlackHandler) HandleLinkSlack

func (h *SlackHandler) HandleLinkSlack(writer http.ResponseWriter, request *http.Request)

func (*SlackHandler) HandleListTriggers

func (h *SlackHandler) HandleListTriggers(writer http.ResponseWriter, request *http.Request)

func (*SlackHandler) HandleOAuth

func (h *SlackHandler) HandleOAuth(writer http.ResponseWriter, request *http.Request)

func (*SlackHandler) HandleTrigger

func (h *SlackHandler) HandleTrigger(writer http.ResponseWriter, request *http.Request)

func (*SlackHandler) Init

func (h *SlackHandler) Init() error

func (*SlackHandler) ReturnError

func (h *SlackHandler) ReturnError(writer http.ResponseWriter, err error)

func (*SlackHandler) ReturnResponse

func (h *SlackHandler) ReturnResponse(writer http.ResponseWriter, msg slack.Msg)

func (*SlackHandler) Run

func (h *SlackHandler) Run() error

type SlackPayload

type SlackPayload struct {
	SlackId  string
	UserName string
	TeamId   string
	TeamName string
	Text     string
}

type SlackToken

type SlackToken struct {
	UserId      string
	SlackId     string
	AccessToken string
	TeamId      string
	Scopes      string
}

type SlackUser

type SlackUser struct {
	ID     string `json:"id"`
	TeamID string `json:"team"`
}

type Storage

type Storage struct {
	Account string
	// contains filtered or unexported fields
}

func NewStorageClient

func NewStorageClient() (Storage, error)

func (*Storage) DeleteBlob

func (s *Storage) DeleteBlob(containerName string, blobName string) error

func (*Storage) GetBlob

func (s *Storage) GetBlob(containerName string, blobName string) ([]byte, error)

func (*Storage) ListContainer

func (s *Storage) ListContainer(containerName string, prefix string) ([]string, error)

func (*Storage) SetBlob

func (s *Storage) SetBlob(containerName string, blobName string, data []byte) error

func (*Storage) URL

func (s *Storage) URL() string

type TriggerRequest

type TriggerRequest struct {
	SlackPayload
}

func (TriggerRequest) GetName

func (r TriggerRequest) GetName() string

type User

type User struct {
	ID         string      `json:"id"`
	SlackUsers []SlackUser `json:"slack-users"`
}

func (*User) AddSlackUser

func (u *User) AddSlackUser(slackId, teamId string)

Jump to

Keyboard shortcuts

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