Exemple #1
0
        public async Task <IActionResult> Post([FromForm] SlackCommandRequest request)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            var key = await _firebaseService.SavePurchaseRequestAsync(request.UserId, request.Text);

            await _slackService.SendDirectMessage(
                _ceoMemberId,
                $"Hi! <@{request.UserId}> would like to order *{request.Text}*. Do you authorise this purchase request?",
                new List <SlackAttachment> {
                new SlackAttachment {
                    Text       = "Do you authorise this purchase request?",
                    CallbackId = "purchase_request",
                    Actions    = new List <SlackAction> {
                        new SlackAction {
                            Name  = key,
                            Text  = "Yes, I approve",
                            Type  = "button",
                            Value = "approved"
                        },
                        new SlackAction {
                            Name  = key,
                            Text  = "No",
                            Type  = "button",
                            Value = "declined"
                        }
                    }
                }
            }
                );

            var response = new SlackCommandResponse
            {
                Text = $"Thanks for your puchase request of *{request.Text}*. We will message the CEO now for authorisation"
            };

            return(Ok(response));
        }