Skip to content

Commit

Permalink
Merge pull request #156 from jadmsaadaot/SUBMIT-task#217
Browse files Browse the repository at this point in the history
Pass specific folder for MPs and CRs for S3 Upload
  • Loading branch information
djnunez-aot authored Nov 13, 2024
2 parents d0a1549 + d4bbe62 commit 0365370
Show file tree
Hide file tree
Showing 21 changed files with 314 additions and 184 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
Create Date: 2024-10-30 07:23:40.214720
"""
from alembic import op
import sqlalchemy as sa
from alembic import op


# revision identifiers, used by Alembic.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
Create Date: 2024-11-08 14:09:53.880062
"""
from alembic import op
import sqlalchemy as sa
from alembic import op


# revision identifiers, used by Alembic.
Expand Down
4 changes: 2 additions & 2 deletions submit-api/src/submit_api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@

def create_app(run_mode=os.getenv('FLASK_ENV', 'development')):
"""Create flask app."""
from submit_api.resources import (API_BLUEPRINT, OPS_BLUEPRINT, # pylint: disable=import-outside-toplevel
STAFF_API_BLUEPRINT)
from submit_api.resources import ( # pylint: disable=import-outside-toplevel
API_BLUEPRINT, OPS_BLUEPRINT, STAFF_API_BLUEPRINT)

# Flask app initialize
app = Flask(__name__)
Expand Down
4 changes: 2 additions & 2 deletions submit-api/src/submit_api/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,12 @@
from .account_user import AccountUser
from .base_model import BaseModel
from .db import db, ma, migrate
from .email_queue import EmailQueue
from .item import Item
from .item_type import ItemType
from .package import Package
from .package_metadata import PackageMetadata
from .package_item_type import PackageItemType
from .package_metadata import PackageMetadata
from .package_type import PackageType
from .project import Project
from .project_team import ProjectTeam
Expand All @@ -33,4 +34,3 @@
from .submitted_document import SubmittedDocument
from .submitted_form import SubmittedForm
from .user import User
from .email_queue import EmailQueue
2 changes: 2 additions & 0 deletions submit-api/src/submit_api/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
from .proponent.project import API as PROJECT_API
from .proponent.submission import API as SUBMISSION_API
from .proponent.user import API as USER_API
from .staff.item import API as STAFF_ITEM_API
from .staff.package import API as STAFF_PACKAGE_API
from .staff.project import API as STAFF_PROJECT_API

Expand Down Expand Up @@ -76,3 +77,4 @@

STAFF_API.add_namespace(STAFF_PROJECT_API)
STAFF_API.add_namespace(STAFF_PACKAGE_API)
STAFF_API.add_namespace(STAFF_ITEM_API)
5 changes: 2 additions & 3 deletions submit-api/src/submit_api/resources/proponent/account.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,13 @@

from flask_restx import Namespace, Resource, cors

from submit_api.auth import auth
from submit_api.exceptions import ResourceNotFoundError
from submit_api.resources.apihelper import Api as ApiHelper
from submit_api.schemas.account import AccountCreateSchema, AccountSchema
from submit_api.services.account_service import AccountService
from submit_api.utils.util import cors_preflight

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper


API = Namespace("accounts", description="Endpoints for Account Management")
"""Custom exception messages
Expand Down
5 changes: 2 additions & 3 deletions submit-api/src/submit_api/resources/proponent/item.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,12 @@

from flask_restx import Namespace, Resource, cors

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper
from submit_api.schemas.item import ItemSchema
from submit_api.services.item import ItemService
from submit_api.utils.util import cors_preflight

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper


API = Namespace("items", description="Endpoints for item Management")
"""Custom exception messages
Expand Down
5 changes: 2 additions & 3 deletions submit-api/src/submit_api/resources/proponent/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,12 @@

from flask_restx import Namespace, Resource, cors

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper
from submit_api.schemas.package import PackageSchema, PostPackageRequestSchema, PostPackageState
from submit_api.services.package import PackageService
from submit_api.utils.util import cors_preflight

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper


API = Namespace("packages", description="Endpoints for Package Management")
"""Custom exception messages
Expand Down
5 changes: 2 additions & 3 deletions submit-api/src/submit_api/resources/proponent/project.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,14 @@
from flask import request
from flask_restx import Namespace, Resource, cors

from submit_api.auth import auth
from submit_api.models.account_project_search_options import AccountProjectSearchOptions
from submit_api.models.package import PackageStatus
from submit_api.resources.apihelper import Api as ApiHelper
from submit_api.schemas.project import AccountProjectSchema, AddProjectSchema, ProjectSchema
from submit_api.services.project_service import ProjectService
from submit_api.utils.util import cors_preflight

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper


API = Namespace("projects", description="Endpoints for Project Management")
"""Custom exception messages
Expand Down
5 changes: 2 additions & 3 deletions submit-api/src/submit_api/resources/proponent/submission.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,12 @@

from flask_restx import Namespace, Resource, cors

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper
from submit_api.schemas.submission import CreateSubmissionRequestSchema, SubmissionSchema
from submit_api.services.submission import SubmissionService
from submit_api.utils.util import cors_preflight

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper


API = Namespace("submissions", description="Endpoints for Submission Management")
"""Custom exception messages
Expand Down
54 changes: 54 additions & 0 deletions submit-api/src/submit_api/resources/staff/item.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Copyright © 2024 Province of British Columbia
#
# Licensed under the Apache License, Version 2.0 (the 'License');
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an 'AS IS' BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""API endpoints for managing an item resource."""

from http import HTTPStatus

from flask_restx import Namespace, Resource, cors

from submit_api.auth import auth
from submit_api.resources.apihelper import Api as ApiHelper
from submit_api.schemas.item import StaffItemSchema
from submit_api.services.item import ItemService
from submit_api.utils.util import cors_preflight


API = Namespace("items", description="Endpoints for item Management")
"""Custom exception messages
"""

item_model = ApiHelper.convert_ma_schema_to_restx_model(
API, StaffItemSchema(), "Submission item"
)


@cors_preflight("GET, OPTIONS")
@API.route("/<int:item_id>", methods=["GET", "OPTIONS"])
class Item(Resource):
"""Resource for managing projects."""

@staticmethod
@ApiHelper.swagger_decorators(
API, endpoint_description="Get item by id"
)
@API.response(
code=HTTPStatus.OK, model=item_model, description="Submission item"
)
@API.response(HTTPStatus.BAD_REQUEST, "Bad Request")
@cors.crossdomain(origin="*")
@auth.require
def get(item_id):
"""Get item by id."""
projects = ItemService.get_item_by_id(item_id)
return StaffItemSchema().dump(projects), HTTPStatus.OK
3 changes: 1 addition & 2 deletions submit-api/src/submit_api/services/item.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ class ItemService:
@classmethod
def get_item_by_id(cls, item_id) -> ItemModel:
"""Get item by id."""
item = ItemModel.find_by_id(item_id)
return item
return ItemModel.find_by_id(item_id)

@staticmethod
def _apply_update_data(submission_item, update_data):
Expand Down
4 changes: 2 additions & 2 deletions submit-api/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
from sqlalchemy import event, text

from src.submit_api import create_app
from src.submit_api.auth import jwt as _jwt
from src.submit_api import get_named_config
from src.submit_api import db as _db
from src.submit_api import get_named_config
from src.submit_api.auth import jwt as _jwt

from .utilities.factory_scenario import TokenJWTClaims
from .utilities.factory_utils import factory_auth_header
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
"""Module for defining various project scenarios for testing with realistic data."""
from enum import Enum

from faker import Faker

from src.submit_api.models import Project as ProjectModel


fake = Faker()


Expand Down
Loading

0 comments on commit 0365370

Please sign in to comment.