def delete(self, id): if not ObjectId.is_valid(id): return {'message': 'Error Incorrect Id'}, 400 beach_deleted = db.delete_one({'_id': ObjectId(id)}) if not beach_deleted.deleted_count: return {'message': 'Error Incorrect Id'}, 400 return jsonify({'message': 'Beach Delete'})
def get(self, id): if not ObjectId.is_valid(id): return {'message': 'Error Incorrect Id'}, 400 beach = db.find_one_or_404({'_id': ObjectId(id)}) try: beach_validated = beach_schema.load(beach) except ValidationError as err: return err.messages, 400 return jsonify(fill_fields(defaultdict(str, beach_validated), True))
def find_user(self, user_info): found = False if (ObjectId.is_valid(user_info)): found = database.db.users.find_one({"_id": ObjectId(user_info)}) if not found: found = database.db.users.find_one({"username": user_info}) if found: found['_id'] = str(found['_id']) found['password'] = "******" return found
def put(self, id): if not ObjectId.is_valid(id): return {'message': 'Error Incorrect Id'}, 400 try: beach_schema.load( fill_fields(defaultdict(str, request.json), False)) db.update_one( {'_id': ObjectId(id)}, {'$set': fill_fields(defaultdict(str, request.json), False)}) except ValidationError as err: return err.messages, 400 return jsonify({'message': 'Beach Updated'})
def replace_object_id(document): """ Replace all _id values in a JSON-style dictionary document with the MongoDB ObjectID type value. This is a requirement when using MongoDB's unique IDs. (i.e # Update entry matching {_id: "sdfr23hfk23f23"} to {_id: ObjectID("sdfr23hfk23f23")}) """ if isinstance(document, dict): return { key: Database.replace_object_id(val) for key, val in document.items() } if isinstance(document, list): return [Database.replace_object_id(val) for val in document] if isinstance(document, str) and ObjectId.is_valid(document): return ObjectId(document) return document