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)); }
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 }); } }