Skip to content

Commit

Permalink
Merge branch 'master' into feature/query-params-search-api-#259
Browse files Browse the repository at this point in the history
  • Loading branch information
MRichards99 committed Nov 19, 2021
2 parents 7b3d039 + fd53e88 commit cab9f3f
Show file tree
Hide file tree
Showing 87 changed files with 214 additions and 229 deletions.
6 changes: 3 additions & 3 deletions .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ per-file-ignores =
test/*: S101
util/icat_db_generator.py: S311
datagateway_api/wsgi.py:E402,F401
datagateway_api/common/datagateway_api/database/models.py: N815,A003
datagateway_api/common/datagateway_api/icat/filters.py: C901
datagateway_api/common/search_api/models.py: B950
datagateway_api/src/datagateway_api/database/models.py: N815,A003
datagateway_api/src/datagateway_api/icat/filters.py: C901
datagateway_api/src/search_api/models.py: B950
enable-extensions=G
8 changes: 4 additions & 4 deletions .github/workflows/ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.9'
python-version: '3.9.7'
architecture: x64
- name: Checkout DataGateway API
uses: actions/checkout@v2
Expand All @@ -117,7 +117,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.9'
python-version: '3.9.7'
architecture: x64
- name: Checkout DataGateway API
uses: actions/checkout@v2
Expand All @@ -137,7 +137,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.9'
python-version: '3.9.7'
architecture: x64
- name: Checkout DataGateway API
uses: actions/checkout@v2
Expand Down Expand Up @@ -167,7 +167,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.9'
python-version: '3.9.7'
architecture: x64

# ICAT Ansible clone and install dependencies
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,21 @@

<!--next-version-placeholder-->

## v1.1.0 (2021-11-19)
### Feature
* Add unimplemented endpoint definitions for search API #257 ([`d0e52d9`](https://github.com/ral-facilities/datagateway-api/commit/d0e52d96dd3b94ce54dcc9b81969e777a196922a))

### Documentation
* Rebuild openapi docs #257 ([`de15357`](https://github.com/ral-facilities/datagateway-api/commit/de1535772db64916f75e16d79be3f3fdf10fc47c))

## v1.0.1 (2021-11-15)
### Fix
* Add PID field for study in DB backend #287 ([`18379be`](https://github.com/ral-facilities/datagateway-api/commit/18379becafd23ff2957e556de2bd3fc210a71f5b))
* Add generation of study.pid #287 ([`f6a8ebc`](https://github.com/ral-facilities/datagateway-api/commit/f6a8ebc6c775ba3f5252d5af5cedc4e1e0e79a40))

### Documentation
* Add study PID to swagger docs #287 ([`89a9e27`](https://github.com/ral-facilities/datagateway-api/commit/89a9e27b72dfe1d474d49a721f128a643ef2ae36))

## v1.0.0 (2021-11-03)
### Breaking
* As the API will be approaching production use soon, this seems like a good opportunity to bump the version to 1.0.0. This also serves as a good test that the introduction of automatic versioning actually works ([`ccf6d29`](https://github.com/ral-facilities/datagateway-api/commit/ccf6d2974216f8979a03e3e223f7c9e84ced05cb))
Expand Down
36 changes: 15 additions & 21 deletions datagateway_api/src/api_start_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,34 @@
from flask_restful import Api
from flask_swagger_ui import get_swaggerui_blueprint

from datagateway_api.common.config import APIConfigOptions, config
from datagateway_api.common.datagateway_api.backends import create_backend
from datagateway_api.common.datagateway_api.database.helpers import db
from datagateway_api.common.datagateway_api.icat.icat_client_pool import (
create_client_pool,
)
from datagateway_api.src.resources.datagateway_api.entities.entity_endpoint import (
from datagateway_api.src.common.config import APIConfigOptions, config
from datagateway_api.src.datagateway_api.backends import create_backend
from datagateway_api.src.datagateway_api.database.helpers import db
from datagateway_api.src.datagateway_api.icat.icat_client_pool import create_client_pool
from datagateway_api.src.resources.entities.entity_endpoint import (
get_count_endpoint,
get_endpoint,
get_find_one_endpoint,
get_id_endpoint,
)
from datagateway_api.src.resources.datagateway_api.entities.entity_endpoint_dict import ( # noqa: B950
endpoints,
)
from datagateway_api.src.resources.datagateway_api.non_entities.ping_endpoint import (
ping_endpoint,
)
from datagateway_api.src.resources.datagateway_api.non_entities.sessions_endpoints import ( # noqa: B950
from datagateway_api.src.resources.entities.entity_endpoint_dict import endpoints
from datagateway_api.src.resources.non_entities.ping_endpoint import ping_endpoint
from datagateway_api.src.resources.non_entities.sessions_endpoints import (
session_endpoints,
)
from datagateway_api.src.resources.datagateway_api.table_endpoints.table_endpoints import ( # noqa: B950
count_instrument_facility_cycles_endpoint,
count_instrument_investigation_endpoint,
instrument_facility_cycles_endpoint,
instrument_investigation_endpoint,
)
from datagateway_api.src.resources.search_api.search_api_endpoints import (
from datagateway_api.src.resources.search_api_endpoints import (
get_files_endpoint,
get_number_count_endpoint,
get_number_count_files_endpoint,
get_search_endpoint,
get_single_endpoint,
)
from datagateway_api.src.resources.table_endpoints.table_endpoints import (
count_instrument_facility_cycles_endpoint,
count_instrument_investigation_endpoint,
instrument_facility_cycles_endpoint,
instrument_investigation_endpoint,
)
from datagateway_api.src.swagger.apispec_flask_restful import RestfulPlugin
from datagateway_api.src.swagger.initialise_spec import initialise_spec

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class APIConfigOptions(Enum):


class Config(object):
def __init__(self, path=Path(__file__).parent.parent / "config.json"):
def __init__(self, path=Path(__file__).parent.parent.parent / "config.json"):
self.path = path
with open(self.path) as target:
self._config = json.load(target)
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from dateutil.parser import parse
from icat import helper

from datagateway_api.common.exceptions import BadRequestError
from datagateway_api.src.common.exceptions import BadRequestError


class DateHandler:
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from abc import ABC, abstractmethod
import logging

from datagateway_api.common.exceptions import BadRequestError, FilterError
from datagateway_api.src.common.exceptions import BadRequestError, FilterError

log = logging.getLogger()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,16 @@
from flask_restful import reqparse
from sqlalchemy.exc import IntegrityError

from datagateway_api.common.datagateway_api.database import models
from datagateway_api.common.datagateway_api.query_filter_factory import (
DataGatewayAPIQueryFilterFactory,
)
from datagateway_api.common.date_handler import DateHandler
from datagateway_api.common.exceptions import (
from datagateway_api.src.common.date_handler import DateHandler
from datagateway_api.src.common.exceptions import (
ApiError,
AuthenticationError,
BadRequestError,
FilterError,
MissingCredentialsError,
)
from datagateway_api.src.resources.datagateway_api.entities.entity_endpoint_dict import ( # noqa: B950
endpoints,
)
from datagateway_api.src.datagateway_api.database import models
from datagateway_api.src.resources.entities.entity_endpoint_dict import endpoints

log = logging.getLogger()

Expand Down Expand Up @@ -103,11 +98,11 @@ def get_filters_from_query_string(api_type):
:return: The list of filters
"""
if api_type == "search_api":
from datagateway_api.common.search_api.query_filter_factory import (
from datagateway_api.src.search_api.query_filter_factory import (
SearchAPIQueryFilterFactory as QueryFilterFactory,
)
elif api_type == "datagateway_api":
from datagateway_api.common.datagateway_api.query_filter_factory import (
from datagateway_api.src.datagateway_api.query_filter_factory import (
DataGatewayAPIQueryFilterFactory as QueryFilterFactory,
)
else:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import logging.config
from pathlib import Path

from datagateway_api.common.config import APIConfigOptions, config
from datagateway_api.src.common.config import APIConfigOptions, config

LOG_FILE_NAME = Path(config.get_config_value(APIConfigOptions.LOG_LOCATION))
logger_config = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import sys

from datagateway_api.common.datagateway_api.database.backend import DatabaseBackend
from datagateway_api.common.datagateway_api.icat.backend import PythonICATBackend
from datagateway_api.src.datagateway_api.database.backend import DatabaseBackend
from datagateway_api.src.datagateway_api.icat.backend import PythonICATBackend


def create_backend(backend_type):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@
from sqlalchemy import inspect
from sqlalchemy.exc import SQLAlchemyError

from datagateway_api.common.constants import Constants
from datagateway_api.common.datagateway_api.backend import Backend
from datagateway_api.common.datagateway_api.database.helpers import (
from datagateway_api.src.common.constants import Constants
from datagateway_api.src.common.exceptions import AuthenticationError, DatabaseError
from datagateway_api.src.common.helpers import (
get_entity_object_from_name,
queries_records,
)
from datagateway_api.src.datagateway_api.backend import Backend
from datagateway_api.src.datagateway_api.database.helpers import (
create_rows_from_json,
db,
delete_row_by_id,
Expand All @@ -24,9 +29,7 @@
requires_session_id,
update_row_from_id,
)
from datagateway_api.common.datagateway_api.database.models import SESSION
from datagateway_api.common.exceptions import AuthenticationError, DatabaseError
from datagateway_api.common.helpers import get_entity_object_from_name, queries_records
from datagateway_api.src.datagateway_api.database.models import SESSION


log = logging.getLogger()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@

from sqlalchemy import asc, desc

from datagateway_api.common.exceptions import FilterError, MultipleIncludeError
from datagateway_api.common.filters import (
from datagateway_api.src.common.exceptions import FilterError, MultipleIncludeError
from datagateway_api.src.common.filters import (
DistinctFieldFilter,
IncludeFilter,
LimitFilter,
OrderFilter,
SkipFilter,
WhereFilter,
)
from datagateway_api.common.helpers import get_entity_object_from_name
from datagateway_api.src.common.helpers import get_entity_object_from_name


log = logging.getLogger()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,26 @@
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.orm import aliased

from datagateway_api.common.datagateway_api.database.filters import (
from datagateway_api.src.common.exceptions import (
AuthenticationError,
BadRequestError,
MissingRecordError,
)
from datagateway_api.src.common.helpers import map_distinct_attributes_to_results
from datagateway_api.src.datagateway_api.database.filters import (
DatabaseDistinctFieldFilter,
DatabaseIncludeFilter as IncludeFilter,
DatabaseWhereFilter as WhereFilter,
)
from datagateway_api.common.datagateway_api.database.models import (
from datagateway_api.src.datagateway_api.database.models import (
FACILITY,
FACILITYCYCLE,
INSTRUMENT,
INVESTIGATION,
INVESTIGATIONINSTRUMENT,
SESSION,
)
from datagateway_api.common.datagateway_api.filter_order_handler import (
FilterOrderHandler,
)
from datagateway_api.common.exceptions import (
AuthenticationError,
BadRequestError,
MissingRecordError,
)
from datagateway_api.common.helpers import map_distinct_attributes_to_results
from datagateway_api.src.datagateway_api.filter_order_handler import FilterOrderHandler


log = logging.getLogger()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
from sqlalchemy.orm import relationship
from sqlalchemy.orm.collections import InstrumentedList

from datagateway_api.common.date_handler import DateHandler
from datagateway_api.common.exceptions import DatabaseError, FilterError
from datagateway_api.src.common.date_handler import DateHandler
from datagateway_api.src.common.exceptions import DatabaseError, FilterError

Base = declarative_base()

Expand Down Expand Up @@ -1229,6 +1229,7 @@ class STUDY(Base, EntityHelper, metaclass=EntityMeta):
modId = Column("MOD_ID", String(255), nullable=False)
modTime = Column("MOD_TIME", DateTime, nullable=False)
name = Column("NAME", String(255), nullable=False)
pid = Column("PID", String(255))
startDate = Column("STARTDATE", DateTime)
status = Column("STATUS", Integer)
userID = Column("USER_ID", ForeignKey("USER_.ID"), index=True)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import logging

from datagateway_api.common.datagateway_api.icat.filters import (
from datagateway_api.src.datagateway_api.icat.filters import (
PythonICATLimitFilter,
PythonICATOrderFilter,
PythonICATSkipFilter,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

from icat.exception import ICATError, ICATSessionError

from datagateway_api.common.constants import Constants
from datagateway_api.common.datagateway_api.backend import Backend
from datagateway_api.common.datagateway_api.icat.helpers import (
from datagateway_api.src.common.constants import Constants
from datagateway_api.src.common.exceptions import AuthenticationError, PythonICATError
from datagateway_api.src.common.helpers import queries_records
from datagateway_api.src.datagateway_api.backend import Backend
from datagateway_api.src.datagateway_api.icat.helpers import (
create_entities,
delete_entity_by_id,
get_cached_client,
Expand All @@ -23,8 +25,6 @@
update_entities,
update_entity_by_id,
)
from datagateway_api.common.exceptions import AuthenticationError, PythonICATError
from datagateway_api.common.helpers import queries_records


log = logging.getLogger()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import logging

from datagateway_api.common.config import config
from datagateway_api.common.exceptions import FilterError
from datagateway_api.common.filters import (
from datagateway_api.src.common.config import config
from datagateway_api.src.common.exceptions import FilterError
from datagateway_api.src.common.filters import (
DistinctFieldFilter,
IncludeFilter,
LimitFilter,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,20 @@
ICATValidationError,
)

from datagateway_api.common.datagateway_api.filter_order_handler import (
FilterOrderHandler,
)
from datagateway_api.common.datagateway_api.icat.filters import (
PythonICATLimitFilter,
PythonICATWhereFilter,
)
from datagateway_api.common.datagateway_api.icat.lru_cache import ExtendedLRUCache
from datagateway_api.common.datagateway_api.icat.query import ICATQuery
from datagateway_api.common.date_handler import DateHandler
from datagateway_api.common.exceptions import (
from datagateway_api.src.common.date_handler import DateHandler
from datagateway_api.src.common.exceptions import (
AuthenticationError,
BadRequestError,
MissingRecordError,
PythonICATError,
)
from datagateway_api.src.datagateway_api.filter_order_handler import FilterOrderHandler
from datagateway_api.src.datagateway_api.icat.filters import (
PythonICATLimitFilter,
PythonICATWhereFilter,
)
from datagateway_api.src.datagateway_api.icat.lru_cache import ExtendedLRUCache
from datagateway_api.src.datagateway_api.icat.query import ICATQuery

log = logging.getLogger()

Expand Down
Loading

0 comments on commit cab9f3f

Please sign in to comment.