Skip to content

Commit

Permalink
test get all packages
Browse files Browse the repository at this point in the history
  • Loading branch information
jadmsaadaot committed Jan 17, 2025
1 parent f47a39d commit ea15b7f
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 18 deletions.
22 changes: 11 additions & 11 deletions submit-api/src/submit_api/models/account_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@ class AccountProject(BaseModel):
@property
def latest_packages(self):
"""Get the latest packages by versions for the account project."""
# version_by_package = {}
#
# for package in self._packages:
# original_package_id = package.version.original_package_id
# if original_package_id not in version_by_package:
# version_by_package[original_package_id] = package
# else:
# if package.version.version > version_by_package[original_package_id].version.version:
# version_by_package[original_package_id] = package

return self._packages
version_by_package = {}

for package in self._packages:
original_package_id = package.version.original_package_id
if original_package_id not in version_by_package:
version_by_package[original_package_id] = package
else:
if package.version.version > version_by_package[original_package_id].version.version:
version_by_package[original_package_id] = package

return list(version_by_package.values())

@classmethod
def add_projects_bulk(cls, projects):
Expand Down
19 changes: 12 additions & 7 deletions submit-api/src/submit_api/models/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ class Package(BaseModel):
status = Column(db.ARRAY(Enum(PackageStatus)), nullable=False, default=[PackageStatus.NEW_SUBMISSION.value])
active = Column(db.Boolean, nullable=False, default=True)

update_requests = db.relationship(
'UpdateRequest',
backref='submission_package',
lazy='joined',
primaryjoin='and_(UpdateRequest.submission_package_id == Package.id, UpdateRequest.active.is_(True))',
order_by='UpdateRequest.created_date',
foreign_keys='UpdateRequest.submission_package_id')
# update_requests = db.relationship(
# 'UpdateRequest',
# backref='submission_package',
# lazy='joined',
# primaryjoin='and_(UpdateRequest.submission_package_id == Package.id, UpdateRequest.active.is_(True))',
# order_by='UpdateRequest.created_date',
# foreign_keys='UpdateRequest.submission_package_id')

version = db.relationship(
'PackageVersion',
Expand All @@ -68,3 +68,8 @@ class Package(BaseModel):
def get_package_by_id_with_items(cls, package_id: int):
"""Return model by package id."""
return cls.query.filter_by(id=package_id).options(joinedload(Package.items)).first()

@classmethod
def get_all(cls):
"""Get all packages."""
return cls.query.all()
22 changes: 22 additions & 0 deletions submit-api/src/submit_api/resources/staff/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,3 +141,25 @@ def post(package_id, update_request_id):
package_with_update_request_note = PackageService.create_update_request_note(
package_id, update_request_id, create_update_request_data)
return StaffPackageSchema().dump(package_with_update_request_note), HTTPStatus.CREATED


@cors_preflight("GET, OPTIONS")
@API.route(
"/",
methods=["GET", "OPTIONS"],
)
class PackagesTest(Resource):
"""Resource for managing a package."""

@staticmethod
@ApiHelper.swagger_decorators(API, endpoint_description="Get package by id")
@API.response(
code=HTTPStatus.OK, model=package_model, description="Get package"
)
@API.response(HTTPStatus.BAD_REQUEST, "Bad Request")
@auth.has_one_of_roles([EpicSubmitRole.EAO_VIEW.value])
@cors.crossdomain(origin="*")
def get():
"""Get packages."""
packages = PackageService.get_all()
return StaffPackageSchema().dump(packages, many=True), HTTPStatus.OK
4 changes: 4 additions & 0 deletions submit-api/src/submit_api/services/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@
class PackageService:
"""Package management service."""

@classmethod
def get_all(cls):
return PackageModel.get_all()

@classmethod
def get_package_by_id(cls, package_id):
"""Get package by id."""
Expand Down

0 comments on commit ea15b7f

Please sign in to comment.