Example #1
0
 private Task <SlackResult> HandleViewSubmission(ViewSubmission viewSubmission) =>
 RespondAsync <ViewSubmissionResponse>(
     respond => _viewSubmissionHandler.Handle(viewSubmission, respond),
     response => response?.ResponseAction == null
             ? (SlackResult) new EmptyResult(HttpStatusCode.OK)
             : new JsonResult(_jsonSettings, HttpStatusCode.OK, response),
     () => new EmptyResult(HttpStatusCode.OK));
        private async Task HandleViewSubmission(ViewSubmission payload)
        {
            var handler = _responseHandlers.FirstOrDefault();

            if (handler == null)
            {
                _logger.LogError("No handler registered for ViewSubmission interactions");
                await _noOp.Handle(payload);
            }
            else
            {
                _logger.LogInformation($"Handling using {handler.GetType()}");
                try
                {
                    _logger.LogInformation($"Handling using {handler.GetType()}");
                    var response = await handler.Handle(payload);

                    _logger.LogInformation(response.Response);
                }
                catch (Exception e)
                {
                    _logger.LogError(e, e.Message);
                }
            }
        }
Example #3
0
        private async Task <SlackResponse> HandleViewSubmission(ViewSubmission viewSubmission)
        {
            var response = await _slackViews.HandleSubmission(viewSubmission).ConfigureAwait(false);

            return(response?.ResponseAction == null
                ? (SlackResponse) new EmptyResponse(HttpStatusCode.OK)
                : new JsonResponse(HttpStatusCode.OK, response));
        }
Example #4
0
        public void RegisterViewSubmissionHandler_HandleSubmissions()
        {
            // Arrange
            var handler             = Substitute.For <IViewSubmissionHandler>();
            var asyncHandler        = Substitute.For <IAsyncViewSubmissionHandler>();
            var otherViewSubmission = new ViewSubmission {
                View = new HomeViewInfo {
                    CallbackId = "other"
                }
            };
            var viewSubmission = new ViewSubmission {
                View = new HomeViewInfo {
                    CallbackId = "key"
                }
            };
            var asyncViewSubmission = new ViewSubmission {
                View = new HomeViewInfo {
                    CallbackId = "asyncKey"
                }
            };
            var submissionResponder = Substitute.For <Responder <ViewSubmissionResponse> >();

            var sut = Configure(c => c
                                .RegisterViewSubmissionHandler("key", handler)
                                .RegisterAsyncViewSubmissionHandler("asyncKey", asyncHandler));

            // Act
            HandleViewSubmissions(sut, submissionResponder, new[] { otherViewSubmission, viewSubmission, asyncViewSubmission });

            // Assert
            handler.DidNotReceive().Handle(otherViewSubmission);
            handler.Received().Handle(viewSubmission);
            handler.DidNotReceive().Handle(asyncViewSubmission);

            asyncHandler.DidNotReceive().Handle(otherViewSubmission, submissionResponder);
            asyncHandler.DidNotReceive().Handle(viewSubmission, submissionResponder);
            asyncHandler.Received().Handle(asyncViewSubmission, submissionResponder);
        }
 public Task Handle(ViewSubmission viewSubmission, Responder <ViewSubmissionResponse> respond) => ResolvedHandle(h => h.Handle(viewSubmission, respond));
Example #6
0
 public async Task <ViewSubmissionResponse> Handle(ViewSubmission viewSubmission) => new ClearViewsResponse();
Example #7
0
 public async Task Handle(ViewSubmission viewSubmission, Responder <ViewSubmissionResponse> respond)
 {
 }
Example #8
0
 public Task <ViewSubmissionResponse> HandleSubmission(ViewSubmission viewSubmission) => _views.HandleSubmission(viewSubmission);
 public Task <EventHandledResponse> Handle(ViewSubmission payload)
 {
     return(Task.FromResult(new EventHandledResponse("YoLO!")));
 }