public async Task <IActionResult> RequestCredentialGeneration(string id)
        {
            var capabilityId = Guid.Empty;

            Guid.TryParse(id, out capabilityId);

            if (capabilityId == Guid.Empty)
            {
                return(BadRequest(new { Message = $"the capability id: {id} is malformed" }));
            }

            var capability = await
                             _capabilityRepository.Get(capabilityId);

            await _kafkaJanitorRestClient.RequestCredentialGeneration(capability);

            return(Ok());
        }
        public async Task <IActionResult> AddTopicToCapability(string id, [FromBody] TopicInput input)
        {
            var capabilityId = Guid.Empty;

            Guid.TryParse(id, out capabilityId);

            if (capabilityId == Guid.Empty)
            {
                return(BadRequest(new { Message = $"the capability id: {id} is malformed" }));
            }

            var capability = await
                             _capabilityRepository.Get(capabilityId);

            IActionResult actionResult;

            try
            {
                var configurations = new Dictionary <string, object>();
                if (input.Configurations != null)
                {
                    foreach (var(key, value) in input.Configurations)
                    {
                        var jsonElement = (JsonElement)value;
                        configurations[key] = JsonObjectTools.GetValueFromJsonElement(jsonElement);
                    }
                }

                var topic = Topic.Create(
                    capabilityId,
                    capability.RootId,
                    input.Name,
                    input.Description,
                    input.Partitions,
                    input.Availability,
                    configurations
                    );

                await _topicDomainService.CreateTopic(
                    topic : topic,
                    dryRun : true
                    );

                if (input.DryRun)
                {
                    return(Ok(DTOs.Topic.CreateFrom(topic)));
                }

                TaskFactoryExtensions.StartActionWithConsoleExceptions(async() =>
                {
                    await _kafkaJanitorRestClient.CreateTopic(topic, capability);

                    await _topicDomainService.CreateTopic(
                        topic: topic,
                        dryRun: input.DryRun
                        );
                });

                var topicDto = DTOs.Topic.CreateFrom(topic);
                actionResult = Ok(topicDto);
            }
            catch (Exception exception) when(ExceptionToStatusCode.CanConvert(exception, out actionResult))
            {
            }

            return(actionResult);
        }
示例#3
0
 public Task <Capability> GetCapability(Guid id) => _capabilityRepository.Get(id);