Documentation ¶
Index ¶
- func CreateSlackAttachment(change *drive.ChangeItem) *slack.Attachment
- func CreateSlackMessage(subscription *Subscription, userState *UserState, folders *drive.Folders, ...) *slack.Message
- func CreateSlackUnknownChannelMessage(subscription *Subscription, redirectUri string, source *slack.Message) *slack.Message
- func CreateSlackWelcomeMessage(channel string, redirectUri string, sUserInfo *slack.UserInfo, version string) *slack.Message
- func EventLoop(env *Environment)
- func ServeHttp(env *Environment)
- type Configuration
- type Environment
- type ErrResponse
- type Logger
- type Request
- type Subscription
- type SubscriptionAndAccessToken
- type Subscriptions
- func (subscriptions *Subscriptions) Add(subscription *Subscription, googleAccessToken string)
- func (subscriptions *Subscriptions) Contains(email string) bool
- func (subscriptions *Subscriptions) HandleFailure(email string) (*Subscription, string, bool)
- func (subscriptions *Subscriptions) HandleSuccess(email string)
- type UserState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateSlackAttachment ¶
func CreateSlackAttachment(change *drive.ChangeItem) *slack.Attachment
func CreateSlackMessage ¶
func EventLoop ¶
func EventLoop(env *Environment)
func ServeHttp ¶
func ServeHttp(env *Environment)
Types ¶
type Configuration ¶
type Configuration struct { BindAddress string `json:"bindAddress"` Workers int `json:"workers"` Interval int `json:"interval"` GoogleTrackingId string `json:"googleTrackingId"` Google *google.OauthConfiguration `json:"google"` Slack *slack.OauthConfiguration `json:"slack"` Mailchimp *mailchimp.Configuration `json:"mailchimp"` }
func LoadConfiguration ¶
func LoadConfiguration(filename string) (*Configuration, error)
type Environment ¶
type Environment struct { Version string Configuration *Configuration Logger *Logger HttpClient *http.Client RegisterChannel chan *SubscriptionAndAccessToken SignalsChannel chan os.Signal }
func NewEnvironment ¶
func NewEnvironment(version string, conf *Configuration, logger *Logger) *Environment
type ErrResponse ¶
type ErrResponse struct {
Error string `json:"error"`
}
type Subscription ¶
type Subscription struct { Channel string `json:"channel"` SlackAccessToken string `json:"slack_access_token"` GoogleRefreshToken string `json:"google_refresh_token"` GoogleUserInfo *userinfo.UserInfo `json:"guser"` SlackUserInfo *slack.UserInfo `json:"suser"` GoogleInterestingFolderIds []string `json:"google_interesting_folder_ids"` }
type SubscriptionAndAccessToken ¶
type SubscriptionAndAccessToken struct { Subscription *Subscription GoogleAccessToken string }
type Subscriptions ¶
type Subscriptions struct { Source string Info map[string]*Subscription States map[string]*UserState }
func LoadSubscriptions ¶
func LoadSubscriptions(filename string) (*Subscriptions, error)
func (*Subscriptions) Add ¶
func (subscriptions *Subscriptions) Add(subscription *Subscription, googleAccessToken string)
func (*Subscriptions) Contains ¶
func (subscriptions *Subscriptions) Contains(email string) bool
func (*Subscriptions) HandleFailure ¶
func (subscriptions *Subscriptions) HandleFailure(email string) (*Subscription, string, bool)
func (*Subscriptions) HandleSuccess ¶
func (subscriptions *Subscriptions) HandleSuccess(email string)
Click to show internal directories.
Click to hide internal directories.