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
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})
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", ] } }, )
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, )