Ejemplo n.º 1
0
        public async Task <IActionResult> PostAsync([FromBody] RestaurantPostRequest req)
        {
            if (req.Name == null || req.Description == null)
            {
                return(BadRequest(new ApiResponse
                {
                    Success = false,
                    ErrorCode = ErrorCodes.MISSING_FIELD
                }));
            }
            if (req.Name.Length == 0 || req.Name.Length > FilterConstants.NAME_MAX_LENGTH)
            {
                return(BadRequest(new ApiResponse
                {
                    Success = false,
                    ErrorCode = ErrorCodes.RESTAURANT_INVALID_NAME_LENGTH
                }));
            }
            if (req.Description.Length == 0 || req.Description.Length > FilterConstants.DESCRIPTION_MAX_LENGTH)
            {
                BadRequest(new ApiResponse
                {
                    Success   = false,
                    ErrorCode = ErrorCodes.RESTAURANT_INVALID_DESCRIPTION_LENGTH
                });;
            }
            if (!Role.Equals(UserRoles.OWNER))
            {
                return(Forbid());
            }
            var res = await _restaurantService.CreateRestaurantAsync(UserId, req);

            if (!res.Success)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
            return(CreatedAtAction(nameof(Get), new { id = res.Data.Id }, res));
        }
Ejemplo n.º 2
0
        public async Task <ApiResponse <Restaurant> > CreateRestaurantAsync(string userId, RestaurantPostRequest res)
        {
            Restaurant r = new Restaurant
            {
                OwnerId     = userId,
                Name        = res.Name,
                Description = res.Description
            };
            var firebase = _firebaseService.GetFirestoreDb();

            try
            {
                var queryResult = await firebase.Collection(TableNames.RESTAURANTS).AddAsync(r);

                r.Id = queryResult.Id;
                return(new ApiResponse <Restaurant>
                {
                    Success = true,
                    Data = r
                });
            }
            catch
            {
                return(new ApiResponse <Restaurant>
                {
                    Success = false,
                    ErrorCode = ErrorCodes.UNKNOWN_ERROR
                });
            }
        }