diff --git a/AUTHORS b/AUTHORS index 64b26acdc14..7a9ff72f4e4 100644 --- a/AUTHORS +++ b/AUTHORS @@ -3,4 +3,5 @@ Jennifer Huang <133@holbertonschool.com> Alexa Orrico <210@holbertonschool.com> -Joann Vuong <130@holbertonschool.com> +Joann Vuong <130@holbertonschool.com> +Mark Manani diff --git a/__pycache__/console.cpython-310.pyc b/__pycache__/console.cpython-310.pyc new file mode 100644 index 00000000000..bb15d9ffa77 Binary files /dev/null and b/__pycache__/console.cpython-310.pyc differ diff --git a/models/__pycache__/__init__.cpython-310.pyc b/models/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 00000000000..f0eb6dccf7a Binary files /dev/null and b/models/__pycache__/__init__.cpython-310.pyc differ diff --git a/models/__pycache__/amenity.cpython-310.pyc b/models/__pycache__/amenity.cpython-310.pyc new file mode 100644 index 00000000000..349ff306e75 Binary files /dev/null and b/models/__pycache__/amenity.cpython-310.pyc differ diff --git a/models/__pycache__/base_model.cpython-310.pyc b/models/__pycache__/base_model.cpython-310.pyc new file mode 100644 index 00000000000..fb860d7d473 Binary files /dev/null and b/models/__pycache__/base_model.cpython-310.pyc differ diff --git a/models/__pycache__/city.cpython-310.pyc b/models/__pycache__/city.cpython-310.pyc new file mode 100644 index 00000000000..a9fc52d3297 Binary files /dev/null and b/models/__pycache__/city.cpython-310.pyc differ diff --git a/models/__pycache__/place.cpython-310.pyc b/models/__pycache__/place.cpython-310.pyc new file mode 100644 index 00000000000..19bad1a1121 Binary files /dev/null and b/models/__pycache__/place.cpython-310.pyc differ diff --git a/models/__pycache__/review.cpython-310.pyc b/models/__pycache__/review.cpython-310.pyc new file mode 100644 index 00000000000..c9e9750cbb2 Binary files /dev/null and b/models/__pycache__/review.cpython-310.pyc differ diff --git a/models/__pycache__/state.cpython-310.pyc b/models/__pycache__/state.cpython-310.pyc new file mode 100644 index 00000000000..20ab398c645 Binary files /dev/null and b/models/__pycache__/state.cpython-310.pyc differ diff --git a/models/__pycache__/user.cpython-310.pyc b/models/__pycache__/user.cpython-310.pyc new file mode 100644 index 00000000000..72fe7476d11 Binary files /dev/null and b/models/__pycache__/user.cpython-310.pyc differ diff --git a/models/engine/__pycache__/__init__.cpython-310.pyc b/models/engine/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 00000000000..d01441f1194 Binary files /dev/null and b/models/engine/__pycache__/__init__.cpython-310.pyc differ diff --git a/models/engine/__pycache__/db_storage.cpython-310.pyc b/models/engine/__pycache__/db_storage.cpython-310.pyc new file mode 100644 index 00000000000..1e87394df1a Binary files /dev/null and b/models/engine/__pycache__/db_storage.cpython-310.pyc differ diff --git a/models/engine/__pycache__/file_storage.cpython-310.pyc b/models/engine/__pycache__/file_storage.cpython-310.pyc new file mode 100644 index 00000000000..9912ef2cf72 Binary files /dev/null and b/models/engine/__pycache__/file_storage.cpython-310.pyc differ diff --git a/models/engine/db_storage.py b/models/engine/db_storage.py index b8e7d291e6f..08ea1b7c5e0 100755 --- a/models/engine/db_storage.py +++ b/models/engine/db_storage.py @@ -15,6 +15,7 @@ import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session, sessionmaker +from sqlalchemy.exc import SQLAlchemyError classes = {"Amenity": Amenity, "City": City, "Place": Place, "Review": Review, "State": State, "User": User} @@ -74,3 +75,20 @@ def reload(self): def close(self): """call remove() method on the private session attribute""" self.__session.remove() + + def get(self, cls, id): + """retrieves one object""" + try: + return self.__session.query(cls).get(id) + except SQLAlchemyError: + return None + + def count(self, cls=None): + """Count the number of objects in storage for the given class.""" + try: + if cls: + return self.__session.query(cls).count() + else: + return sum([self.__session.query(c).count() for c in self.__classes.values()]) + except SQLAlchemyError: + return 0 \ No newline at end of file diff --git a/models/engine/file_storage.py b/models/engine/file_storage.py index c8cb8c1764d..4690a3f32b1 100755 --- a/models/engine/file_storage.py +++ b/models/engine/file_storage.py @@ -68,3 +68,14 @@ def delete(self, obj=None): def close(self): """call reload() method for deserializing the JSON file to objects""" self.reload() + + def get(self, cls, id): + """Retrieve one object based on the class and its ID.""" + objects = self.all(cls) + return objects.get(id, None) + + def count(self, cls=None): + """Count the number of objects in storage for the given class.""" + if cls: + return len([obj for obj in self.__objects.values() if isinstance(obj, cls)]) + return len(self.__objects) diff --git a/tests/__pycache__/test_console.cpython-310.pyc b/tests/__pycache__/test_console.cpython-310.pyc new file mode 100644 index 00000000000..e7ccf6d8a0e Binary files /dev/null and b/tests/__pycache__/test_console.cpython-310.pyc differ diff --git a/tests/test_models/__pycache__/__init__.cpython-310.pyc b/tests/test_models/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 00000000000..1a9524c0e17 Binary files /dev/null and b/tests/test_models/__pycache__/__init__.cpython-310.pyc differ diff --git a/tests/test_models/__pycache__/test_amenity.cpython-310.pyc b/tests/test_models/__pycache__/test_amenity.cpython-310.pyc new file mode 100644 index 00000000000..b4ba2687f4e Binary files /dev/null and b/tests/test_models/__pycache__/test_amenity.cpython-310.pyc differ diff --git a/tests/test_models/__pycache__/test_base_model.cpython-310.pyc b/tests/test_models/__pycache__/test_base_model.cpython-310.pyc new file mode 100644 index 00000000000..6a2b1cd4857 Binary files /dev/null and b/tests/test_models/__pycache__/test_base_model.cpython-310.pyc differ diff --git a/tests/test_models/__pycache__/test_city.cpython-310.pyc b/tests/test_models/__pycache__/test_city.cpython-310.pyc new file mode 100644 index 00000000000..52c68780d6b Binary files /dev/null and b/tests/test_models/__pycache__/test_city.cpython-310.pyc differ diff --git a/tests/test_models/__pycache__/test_place.cpython-310.pyc b/tests/test_models/__pycache__/test_place.cpython-310.pyc new file mode 100644 index 00000000000..9db76487491 Binary files /dev/null and b/tests/test_models/__pycache__/test_place.cpython-310.pyc differ diff --git a/tests/test_models/__pycache__/test_review.cpython-310.pyc b/tests/test_models/__pycache__/test_review.cpython-310.pyc new file mode 100644 index 00000000000..1f0ef751e1a Binary files /dev/null and b/tests/test_models/__pycache__/test_review.cpython-310.pyc differ diff --git a/tests/test_models/__pycache__/test_state.cpython-310.pyc b/tests/test_models/__pycache__/test_state.cpython-310.pyc new file mode 100644 index 00000000000..654b79e5431 Binary files /dev/null and b/tests/test_models/__pycache__/test_state.cpython-310.pyc differ diff --git a/tests/test_models/__pycache__/test_user.cpython-310.pyc b/tests/test_models/__pycache__/test_user.cpython-310.pyc new file mode 100644 index 00000000000..61dc1799abe Binary files /dev/null and b/tests/test_models/__pycache__/test_user.cpython-310.pyc differ diff --git a/tests/test_models/test_amenity.py b/tests/test_models/test_amenity.py index 66b0bb69bc2..cec0883bfd3 100755 --- a/tests/test_models/test_amenity.py +++ b/tests/test_models/test_amenity.py @@ -8,7 +8,7 @@ import models from models import amenity from models.base_model import BaseModel -import pep8 +import pep8 as pycodestyle import unittest Amenity = amenity.Amenity diff --git a/tests/test_models/test_city.py b/tests/test_models/test_city.py index 1ed666115b6..092ccc77a87 100755 --- a/tests/test_models/test_city.py +++ b/tests/test_models/test_city.py @@ -8,7 +8,7 @@ import models from models import city from models.base_model import BaseModel -import pep8 +import pep8 as pycodestyle import unittest City = city.City diff --git a/tests/test_models/test_engine/__pycache__/__init__.cpython-310.pyc b/tests/test_models/test_engine/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 00000000000..a62a4ce6888 Binary files /dev/null and b/tests/test_models/test_engine/__pycache__/__init__.cpython-310.pyc differ diff --git a/tests/test_models/test_engine/__pycache__/test_db_storage.cpython-310.pyc b/tests/test_models/test_engine/__pycache__/test_db_storage.cpython-310.pyc new file mode 100644 index 00000000000..6160a4ef504 Binary files /dev/null and b/tests/test_models/test_engine/__pycache__/test_db_storage.cpython-310.pyc differ diff --git a/tests/test_models/test_engine/__pycache__/test_file_storage.cpython-310.pyc b/tests/test_models/test_engine/__pycache__/test_file_storage.cpython-310.pyc new file mode 100644 index 00000000000..e333cad8511 Binary files /dev/null and b/tests/test_models/test_engine/__pycache__/test_file_storage.cpython-310.pyc differ