Пример #1
0
        private async Task <ISlackClient> CreateSlackClient(string teamId)
        {
            var token = await _tokenStore.GetTokenByTeamId(teamId);

            var slackClient = _builder.Build(token: token);

            return(slackClient);
        }
Пример #2
0
        public async Task Handle(EventMetaData eventMetadata, AppMentionEvent @event)
        {
            var text = _handlers.Select(handler => handler.GetHelpDescription())
                       .Where(desc => !string.IsNullOrEmpty(desc.HandlerTrigger))
                       .Aggregate("*HALP:*", (current, tuple) => current + $"\n• `{tuple.HandlerTrigger}` : _{tuple.Description}_");

            var token = await _tokenStore.GetTokenByTeamId(eventMetadata.Team_Id);

            var slackClient = _slackClientService.Build(token);
            await slackClient.ChatPostMessage(@event.Channel, text);
        }
Пример #3
0
        public override async Task <EventHandledResponse> Handle(EventMetaData eventMetadata, AppMentionEvent slackEvent)
        {
            var token = await _tokenStore.GetTokenByTeamId(eventMetadata.Team_Id);

            var slackClient = _slackClientService.Build(token);
            var usersTask   = slackClient.UsersList();
            var settings    = await _globalSettingsClient.GetGlobalSettings();

            var users     = await usersTask;
            var gameweeks = settings.Gameweeks;
            var teams     = settings.Teams;

            var nextGw   = gameweeks.First(gw => gw.IsNext);
            var fixtures = await _fixtureClient.GetFixturesByGameweek(nextGw.Id);

            var user         = users.Members.FirstOrDefault(x => x.Id == slackEvent.User);
            var userTzOffset = user?.Tz_Offset ?? 0;

            var textToSend = Formatter.FixturesForGameweek(nextGw, fixtures, teams, userTzOffset);

            await _workspacePublisher.PublishToWorkspace(eventMetadata.Team_Id, slackEvent.Channel, textToSend);

            return(new EventHandledResponse(textToSend));
        }
Пример #4
0
        public async Task PublishToWorkspace(string teamId, params ChatPostMessageRequest[] messages)
        {
            var token = await _tokenStore.GetTokenByTeamId(teamId);

            await PublishUsingToken(token, messages);
        }