示例#1
0
        public async Task Reacts()
        {
            var newMessage = new Event
            {
                Channel = "CGY1XJRM1",        // public channel #tests
                Text    = "SomeMessage containing an URL https://twitter.com/AukeHoekstra/status/1104095189117911040?s=09",
                Ts      = "1553108688.002800" // https://smarteboka.slack.com/messages/CGY1XJRM1/convo/CGY1XJRM1-1553108688.002800/
            };
            var payload = new SlackEventAPIPayload
            {
                Event = newMessage
            };

            var body = JsonConvert.SerializeObject(payload, JsonSettings.SlackSettings);

            var request = new APIGatewayProxyRequest
            {
                Body = body
            };

            var appToken = Environment.GetEnvironmentVariable("OldBot_SlackApiKey_SlackApp");
            var botToken = Environment.GetEnvironmentVariable("OldBot_SlackApiKey_BotUser");

            var mockClient = new SlackTaskClientExtensions(appToken, botToken);

            var validateOldness = new OldnessValidator(mockClient);

            var response = await validateOldness.Validate(request, new TestLambdaContext());

            Assert.Equal(200, response.StatusCode);
            Assert.Equal("ALREADY-OLDED", response.Body);
        }
        public CheckForUrlsMiddleware(IMiddleware next) : base(next)
        {
            var oldbotConfig = new OldbotConfig();

            _client         = new SlackTaskClientExtensions(oldbotConfig.SlackApiKeySlackApp, oldbotConfig.SlackApiKeyBotUser);
            HandlerMappings = new[]
            {
                new HandlerMapping
                {
                    ValidHandles             = new IValidHandle[] { new AlwaysMatchHandle() },
                    Description              = "Annoys the heck out of everyone",
                    EvaluatorFunc            = RespondIfLinkFound,
                    MessageShouldTargetBot   = false,
                    ShouldContinueProcessing = true,
                    VisibleInHelp            = false
                }
            };
        }