private async Task <ISlackClient> CreateSlackClient(string teamId) { var token = await _tokenStore.GetTokenByTeamId(teamId); var slackClient = _builder.Build(token: token); return(slackClient); }
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); }
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)); }
public async Task PublishToWorkspace(string teamId, params ChatPostMessageRequest[] messages) { var token = await _tokenStore.GetTokenByTeamId(teamId); await PublishUsingToken(token, messages); }