Ejemplo n.º 1
0
 def get(cls, order_id, with_logs=False):
     order = cls().find_one(
         {"_id": ensure_objectid(order_id)},
         projection={"logs": 0} if not with_logs else None,
     )
     if order is None:
         raise ValueError(
             "Unable to find/retrieve object with ID {}".format(order_id))
     return order
Ejemplo n.º 2
0
def anonymize(user: dict):
    try:
        request_json = request.get_json()
        validate(request_json,
                 {"order_ids": {
                     "type": "list",
                     "required": True
                 }})
        order_ids = [
            ensure_objectid(oid) for oid in request_json.get("order_ids")
        ]
    except ValidationError as error:
        raise errors.BadRequest(str(error))
    except Exception:
        raise errors.BadRequest("Orders IDs are not all valid IDs")

    try:
        Orders.anonymize(order_ids)
    except Exception:
        raise errors.NotFound()

    return jsonify({"_ids": order_ids})
Ejemplo n.º 3
0
 def anonymize(cls, order_ids):
     order_ids = [ensure_objectid(oid) for oid in order_ids]
     query = {"_id": {"$in": order_ids}}
     if Orders().count_documents(query) != len(order_ids):
         raise ValueError("Order IDs contains incorrect one(s).")
     placeholder = "[ANONYMIZED]"
     Orders().update_many(
         query,
         {
             "$set": {
                 key: placeholder
                 for key in [
                     "client.name",
                     "client.email",
                     "recipient.name",
                     "recipient.email",
                     "recipient.phone",
                     "recipient.address",
                 ]
             }
         },
     )
Ejemplo n.º 4
0
 def get(cls, task_id, with_logs=False):
     return cls().find_one(
         {"_id": ensure_objectid(task_id)},
         projection={"logs": 0} if not with_logs else None,
     )