public async Task <ApiResponse <Block> > CreateBlock(string restaurantId, BlockPostRequest req) { Block b = new Block { UserId = req.UserId }; var firebase = _firebaseService.GetFirestoreDb(); try { var queryResult = await firebase.Collection(TableNames.RESTAURANTS).Document(restaurantId).Collection(TableNames.BLOCKS).AddAsync(b); b.Id = queryResult.Id; return(new ApiResponse <Block> { Success = true, Data = b }); } catch { return(new ApiResponse <Block> { Success = false, ErrorCode = ErrorCodes.UNKNOWN_ERROR }); } }
public async Task <IActionResult> PostBlock(string id, [FromBody] BlockPostRequest req) { if (req.UserId == null) { return(BadRequest(new ApiResponse { Success = false, ErrorCode = ErrorCodes.MISSING_FIELD })); } if (!Role.Equals(UserRoles.OWNER)) { return(Forbid()); } var res = await _restaurantService.GetRestaurant(id); if (!res.Success) { return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } if (res.Data == null) { return(NotFound()); } if (!res.Data.OwnerId.Equals(UserId)) { return(Forbid()); } var block = await _restaurantService.CreateBlock(id, req); if (!block.Success) { return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } return(NoContent()); }