Ejemplo n.º 1
0
def delete_hook(key: access_token,
      by: hug.types.one_of(delete_hook_methods),
      dat: hug.types.text):
  """Remove a webhook subscription

  Params:
    - by: Specify *how* do you want to find and delete the webhook subscription
          The valid values are `hook_id`, and `callback_uri`
    - dat (str): provide a valid `hook_id` or `callback_uri` as relevant
  """
  try:
    if by == 'hook_id':
      hook = Hook.objects(id=dat)
    elif by == 'callback_uri':
      hook = Hook.objects(callback=dat)
    else:
      raise ValueError

    deletes = []
    for hook_ob in hook:
      deletes.append(hook_ob.repr)
      hook_ob.delete()

    return {
      'action': 'Delete',
      'hooks': deletes
    }

  except ValueError:
    raise falcon.HTTPBadRequest(
        title='ValueError',
        description='`by` contains unsupported value')