def delete_beer(beer_id):
    try:
        beer = db_adapter.get_beer_by_id(beer_id)
        db_adapter.delete_beer_by_name(beer.name)
        response.status = 204
    except BeerException:
        abort(404, 'Beer with id "' + beer_id + '" does not exist')
def modify_beer(beer_id):
    try:
        beer = db_adapter.get_beer_by_id(beer_id)
    except BeerException:
        abort(404, 'Beer with id ' + beer_id + '" does not exist')   
    # name
    new_name = _get_parameter_value('name')
    if new_name: beer.name = new_name        
    # style
    new_style = _get_parameter_value('style')
    if new_style: beer.style = new_style
    # fermentation
    new_fermenting_from = _get_integer_value('fermenting_from')
    if new_fermenting_from: beer.fermenting_from_timestamp = new_fermenting_from
    new_fermenting_to = _get_integer_value('fermenting_to')
    if new_fermenting_to: beer.fermenting_to_timestamp = new_fermenting_to
    # dryhopping
    new_dryhopping_from = _get_integer_value('dryhopping_from')
    if new_dryhopping_from: beer.dryhopping_from_timestamp = new_dryhopping_from
    new_dryhopping_to = _get_integer_value('dryhopping_to')
    if new_dryhopping_to: beer.dryhopping_to_timestamp = new_dryhopping_to
    # conditioning
    new_conditioning_from = _get_integer_value('conditioning_from')
    if new_conditioning_from: beer.conditioning_from_timestamp = new_conditioning_from
    new_conditioning_to = _get_integer_value('conditioning_to')
    if new_conditioning_to: beer.conditioning_to_timestamp = new_conditioning_to    
    # rating
    new_rating = _get_integer_value('rating')
    if new_rating: beer.rating = new_rating
    # comments
    new_comments = _get_parameter_value('comments')
    if new_comments: beer.comments = new_comments
    # verify & store! 
    try:
        beer._verifyDataMakeSense();
        db_adapter.store_beer(beer)
        response.status = 204
    except BeerException as e:
        abort(400, str(e))