Beispiel #1
0
        public async Task <SlackResponseDto> CreateQueueForChannel(SlashRequest request)
        {
            // check to see if queue already exists
            var currentQueue = await _queueDatabase.GetQueue(request.Channel_Id, request.Enterprise_Id);

            string message;

            //output queue to channel
            QueueBlockDto blocks;

            if (currentQueue == null)
            {
                currentQueue = new QueueDto
                {
                    ChannelId = request.Channel_Id,
                    Name      = request.Text,
                    Queue     = new Queue <string>()
                };

                await _queueDatabase.UpdateQueue(currentQueue);

                message = $"Queue has been added to {request.Channel_Name}";
            }
            else
            {
                blocks = await _blockCreationService.CurrentQueue(currentQueue);

                message = $"Queue Already exists: {currentQueue.Name}";
                return(new SlackResponseDto
                {
                    Text = message,
                    ResponseType = BasicResponseTypes.in_channel,
                    Blocks = blocks.Blocks
                });
            }

            blocks = await _blockCreationService.CurrentQueue(currentQueue);

            var responseNudge = new SlackResponseDto()
            {
                ResponseType   = BasicResponseTypes.ephemeral,
                DeleteOriginal = true,
                Blocks         = blocks.Blocks
            };

            await _hookService.TriggerWebHook(request.Response_Url, responseNudge);

            return(new SlackResponseDto
            {
                Text = "Here's the queue",
                ResponseType = BasicResponseTypes.ephemeral
            });
        }
        public async Task <IActionResult> InitialiseQueue([FromForm] SlashRequest body)
        {
            var returnMessage = await _manageServices.CreateQueueForChannel(body);

            return(Ok(returnMessage));
        }