Esempio n. 1
0
        private async Task AddApiAsync(CreateApi request)
        {
            var apiId = Guid.NewGuid();

            var api = new Api()
            {
                Id                  = apiId,
                Name                = request.Name,
                Title               = request.Title,
                Description         = request.Description,
                BusinessOwner       = request.BusinessOwner,
                TechnicalOwner      = request.TechnicalOwner,
                BusinessSubDomainId = request.BusinessSubDomainId,
                Versions            = new List <ApiVersion>()
                {
                    new ApiVersion()
                    {
                        ApiId        = apiId,
                        MajorVersion = _configuration.GetValue <int>("InceptionMajorVersion"),
                        MinorVersion = _configuration.GetValue <int>("InceptionMinorVersion"),
                        Status       = VersionStatus.Inception
                    }
                }
            };

            await _context.Apis.AddAsync(api);
        }
Esempio n. 2
0
        public async Task <ActionResult> CreateApiAsync([FromBody] ApiCreate api)
        {
            var getSubDomainRequest = new GetSubDomain()
            {
                Name = api.SubDomainName
            };
            var subDomainResonse = await _mediator.Send(getSubDomainRequest);

            if (subDomainResonse.Result == GetResult.NotFound)
            {
                return(BadRequest("No business sub domain was found with the supplied name"));
            }

            var createApi = new CreateApi()
            {
                BusinessOwner       = api.BusinessOwner,
                BusinessSubDomainId = subDomainResonse.Data.Id,
                Description         = api.Description,
                Name           = api.Name,
                TechnicalOwner = api.TechnicalOwner,
                Title          = api.Title,
                Tags           = api.Tags
            };

            var response = await _mediator.Send(createApi);

            if (response.Result == CreateResult.Created)
            {
                return(Created($"api/v1/apis/{api.Name}", api));
            }
            else
            {
                return(StatusCode(500));
            }
        }
Esempio n. 3
0
        private async Task <Response <UpdateResult> > SetApiTagsAsync(CreateApi request)
        {
            var setApiTags = new SetApiTags()
            {
                ApiName  = request.Name,
                Tags     = request.Tags,
                Commit   = false,
                UseLocal = true
            };

            return(await _mediator.Send(setApiTags));
        }
Esempio n. 4
0
        public async Task <Response <CreateResult> > Handle(CreateApi request)
        {
            await AddApiAsync(request);

            var tagsResponse = await SetApiTagsAsync(request);

            if (tagsResponse.Result == UpdateResult.Updated)
            {
                await _context.SaveChangesAsync();

                return(new Response <CreateResult>(CreateResult.Created));
            }
            else
            {
                return(new Response <CreateResult>(CreateResult.NotCreated,
                                                   $"Create aborted - could not add tags. Message is {tagsResponse.Description}"));
            }
        }