diff --git a/dbrepo-analyse-service/Pipfile.lock b/dbrepo-analyse-service/Pipfile.lock index adf893c96069e0238f9cede9ae366e0094edf68b..2ff8fb46f4e99f2f0b27aea880d3d3b7779bfabb 100644 --- a/dbrepo-analyse-service/Pipfile.lock +++ b/dbrepo-analyse-service/Pipfile.lock @@ -167,20 +167,19 @@ }, "boto3": { "hashes": [ - "sha256:8f9c43c54b3dfaa36c4a0d7b42c417227a515bc7a2e163e62802780000a5a3e2", - "sha256:cea2365a25b2b83a97e77f24ac6f922ef62e20636b42f9f6ee9f97188f9c1c03" + "sha256:42b140fc850cf261ee4b1e8ef527fa071b1f1592a6d6a68d34b29f37cc46b4dd", + "sha256:56bec52d485d5670ce96d53ae7b2cd4ae4e8a705fb2298a21093cdd77d642331" ], "index": "pypi", - "markers": "python_version >= '3.8'", - "version": "==1.34.119" + "version": "==1.34.123" }, "botocore": { "hashes": [ - "sha256:4bdf7926a1290b2650d62899ceba65073dd2693e61c35f5cdeb3a286a0aaa27b", - "sha256:b253f15b24b87b070e176af48e8ef146516090429d30a7d8b136a4c079b28008" + "sha256:8c34ada2a708c82e7174bff700611643db7ce2cb18f1130c35045c24310d299d", + "sha256:a8577f6574600c4d159b5cd103ee05744a443d77f7778304e17307940b369c4f" ], "markers": "python_version >= '3.8'", - "version": "==1.34.119" + "version": "==1.34.123" }, "certifi": { "hashes": [ @@ -392,9 +391,11 @@ }, "dbrepo": { "hashes": [ + "sha256:2506475fc8fb3f4fdd722e3e92f8e6ad28d0707023c3d8ea5d6d076cef71f395", "sha256:2bdb48c70b4c99b5044fbfc12aa653c1e9281ca8913a433cc08a1e14cb4bd2ef" ], - "path": "./lib/dbrepo-1.4.4.tar.gz" + "path": "./lib/dbrepo-1.4.4.tar.gz", + "version": "==1.4.4" }, "events": { "hashes": [ @@ -408,7 +409,6 @@ "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16" ], "index": "pypi", - "markers": "python_version >= '3.7'", "version": "==1.2.1" }, "flasgger": { @@ -424,7 +424,6 @@ "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==3.0.3" }, "flask-cors": { @@ -449,7 +448,6 @@ "sha256:9215d05a9413d3855764bcd67035e75819d23af2fafb6b55197eb5a3313fdfb2" ], "index": "pypi", - "markers": "python_version >= '3.7' and python_version < '4'", "version": "==4.6.0" }, "frozenlist": { @@ -580,7 +578,6 @@ "sha256:fbfdce91239fe306772faab57597186710d5699213f4df099d1612da7320d682" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==24.2.1" }, "greenlet": { @@ -645,7 +642,6 @@ "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33" ], "index": "pypi", - "markers": "python_version >= '3.7'", "version": "==3.0.3" }, "gunicorn": { @@ -654,7 +650,6 @@ "sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63" ], "index": "pypi", - "markers": "python_version >= '3.7'", "version": "==22.0.0" }, "idna": { @@ -710,7 +705,6 @@ "sha256:61c9170f92e736b530655e75374681d4fcca9cfa8763ab42be57353b2b203494" ], "index": "pypi", - "markers": "python_version >= '3.6'", "version": "==1.3.1" }, "markupsafe": { @@ -931,7 +925,6 @@ "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f" ], "index": "pypi", - "markers": "python_version >= '3.9'", "version": "==1.26.4" }, "opensearch-py": { @@ -940,16 +933,15 @@ "sha256:b6e78b685dd4e9c016d7a4299cf1de69e299c88322e3f81c716e6e23fe5683c1" ], "index": "pypi", - "markers": "python_version >= '3.8' and python_version < '4'", "version": "==2.6.0" }, "packaging": { "hashes": [ - "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", - "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9" + "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", + "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124" ], - "markers": "python_version >= '3.7'", - "version": "==24.0" + "markers": "python_version >= '3.8'", + "version": "==24.1" }, "pandas": { "hashes": [ @@ -984,7 +976,6 @@ "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad" ], "index": "pypi", - "markers": "python_version >= '3.9'", "version": "==2.2.2" }, "pika": { @@ -1063,7 +1054,6 @@ "sha256:ea91b002777bf643bb20dd717c028ec43216b24a6001a280f83877fd2655d0b4" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==2.7.3" }, "pydantic-core": { @@ -1245,7 +1235,6 @@ "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==2.32.3" }, "rpds-py": { @@ -1395,11 +1384,11 @@ }, "typing-extensions": { "hashes": [ - "sha256:6024b58b69089e5a89c347397254e35f1bf02a907728ec7fee9bf0fe837d203a", - "sha256:915f5e35ff76f56588223f15fdd5938f9a1cf9195c0de25130c627e4d597f6d1" + "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" ], "markers": "python_version >= '3.8'", - "version": "==4.12.1" + "version": "==4.12.2" }, "tzdata": { "hashes": [ @@ -1414,7 +1403,7 @@ "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" ], - "markers": "python_version >= '3.10'", + "markers": "python_version >= '3.8'", "version": "==2.2.1" }, "werkzeug": { @@ -1826,7 +1815,6 @@ "sha256:fd27d8b49e574e50caa65196d908f80e4dff64d7e592d0c59788b45aad7e8b35" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==7.5.3" }, "docker": { @@ -1873,16 +1861,15 @@ "sha256:b6e78b685dd4e9c016d7a4299cf1de69e299c88322e3f81c716e6e23fe5683c1" ], "index": "pypi", - "markers": "python_version >= '3.8' and python_version < '4'", "version": "==2.6.0" }, "packaging": { "hashes": [ - "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", - "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9" + "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", + "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124" ], - "markers": "python_version >= '3.7'", - "version": "==24.0" + "markers": "python_version >= '3.8'", + "version": "==24.1" }, "pluggy": { "hashes": [ @@ -1944,7 +1931,6 @@ "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==8.2.2" }, "python-dateutil": { @@ -1961,7 +1947,6 @@ "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==2.32.3" }, "requests-mock": { @@ -1970,7 +1955,6 @@ "sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401" ], "index": "pypi", - "markers": "python_version >= '3.5'", "version": "==1.12.1" }, "six": { @@ -1993,7 +1977,6 @@ "sha256:54d330d085c0a11fc5da0b001af87aec4dd3e814104376bf7513e8646c77442a" ], "index": "pypi", - "markers": "python_version >= '3.7'", "version": "==0.0.1rc1" }, "testcontainers-opensearch": { @@ -2001,23 +1984,22 @@ "sha256:0bdf270b5b7f53915832f7c31dd2bd3ffdc20b534ea6b32231cc7003049bd0e1" ], "index": "pypi", - "markers": "python_version >= '3.7'", "version": "==0.0.1rc1" }, "typing-extensions": { "hashes": [ - "sha256:6024b58b69089e5a89c347397254e35f1bf02a907728ec7fee9bf0fe837d203a", - "sha256:915f5e35ff76f56588223f15fdd5938f9a1cf9195c0de25130c627e4d597f6d1" + "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" ], "markers": "python_version >= '3.8'", - "version": "==4.12.1" + "version": "==4.12.2" }, "urllib3": { "hashes": [ "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" ], - "markers": "python_version >= '3.10'", + "markers": "python_version >= '3.8'", "version": "==2.2.1" }, "wrapt": { diff --git a/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl b/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl index 694a6fc02560b3b5d858df0e5a0bd9acf45c8f20..503cfef91315990bbf06027d6de14c8b3184507b 100644 Binary files a/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl and b/dbrepo-analyse-service/lib/dbrepo-1.4.4-py3-none-any.whl differ diff --git a/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz b/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz index f344d01026b92476d80703cbfb7d884cb7822e05..9a90176f0a093b05d89d1cd74cf701cd0730861a 100644 Binary files a/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz and b/dbrepo-analyse-service/lib/dbrepo-1.4.4.tar.gz differ diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java index 6856e634ab6776f6db497428cfaaad5aa64394a7..b03621c85e5f74eecf546a178b7c9747cd593b94 100644 --- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java +++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java @@ -590,7 +590,7 @@ public class TableEndpoint { } if (data.getLineTermination() == null) { log.debug("line termination not present, default to \\r\\n"); - data.setLineTermination("\r\n"); + data.setLineTermination("\\r\\n"); } try { tableService.importDataset(table, data); diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java index ea6734bac35b5b6209a243adf29406fa9ad0f6d6..afb0701455515758c8bec86eac138bdccb151a20 100644 --- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java +++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java @@ -182,7 +182,7 @@ public interface MariaDbMapper { } default String databaseTableConstraintsSelectRawQuery() { - final String statement = "SELECT k.`ORDINAL_POSITION`, c.`CONSTRAINT_TYPE`, k.`CONSTRAINT_NAME`, k.`COLUMN_NAME`, k.`REFERENCED_TABLE_NAME`, k.`REFERENCED_COLUMN_NAME`, r.`DELETE_RULE`, r.`UPDATE_RULE` FROM information_schema.TABLE_CONSTRAINTS c JOIN information_schema.KEY_COLUMN_USAGE k ON c.`TABLE_NAME` = k.`TABLE_NAME` AND c.`CONSTRAINT_NAME` = k.`CONSTRAINT_NAME` LEFT JOIN information_schema.REFERENTIAL_CONSTRAINTS r ON r.`CONSTRAINT_NAME` = k.`CONSTRAINT_NAME` WHERE LOWER(k.`COLUMN_NAME`) != 'row_end' AND c.`TABLE_SCHEMA` = ? AND c.`TABLE_NAME` = ? ORDER BY k.`ORDINAL_POSITION` ASC;"; + final String statement = "SELECT k.`ORDINAL_POSITION`, c.`CONSTRAINT_TYPE`, k.`CONSTRAINT_NAME`, k.`COLUMN_NAME`, k.`REFERENCED_TABLE_NAME`, k.`REFERENCED_COLUMN_NAME`, r.`DELETE_RULE`, r.`UPDATE_RULE` FROM information_schema.TABLE_CONSTRAINTS c JOIN information_schema.KEY_COLUMN_USAGE k ON c.`TABLE_NAME` = k.`TABLE_NAME` AND c.`CONSTRAINT_NAME` = k.`CONSTRAINT_NAME` LEFT JOIN information_schema.REFERENTIAL_CONSTRAINTS r ON r.`CONSTRAINT_NAME` = k.`CONSTRAINT_NAME` WHERE LOWER(k.`COLUMN_NAME`) != 'row_end' AND c.`TABLE_SCHEMA` = ? AND c.`TABLE_NAME` = ? GROUP BY k.`ORDINAL_POSITION`, k.`CONSTRAINT_NAME` ORDER BY k.`ORDINAL_POSITION` ASC;"; log.trace("mapped select table constraints statement: {}", statement); return statement; } diff --git a/dbrepo-metadata-db/setup-schema.sql b/dbrepo-metadata-db/setup-schema.sql index 7a12ed5e828f489ce4c04e81ebe7faed0dadf57a..e385ea4d9b2bc624dbc62ef6db6aaa53d44e2d07 100644 --- a/dbrepo-metadata-db/setup-schema.sql +++ b/dbrepo-metadata-db/setup-schema.sql @@ -249,6 +249,7 @@ CREATE TABLE IF NOT EXISTS `mdb_constraints_foreign_key_reference` cid BIGINT NOT NULL, rcid BIGINT NOT NULL, PRIMARY KEY (id), + UNIQUE (fkid, cid, rcid), FOREIGN KEY (fkid) REFERENCES mdb_constraints_foreign_key (fkid) ON UPDATE CASCADE, FOREIGN KEY (cid) REFERENCES mdb_columns (id), FOREIGN KEY (rcid) REFERENCES mdb_columns (id) diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java index 15986289ba848215a44cd50d7f4f8fdd97b27220..c63cdd22e6e4ade249ffc41c1305e1d8e7e0c44d 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java @@ -15,7 +15,9 @@ import jakarta.persistence.*; @ToString @EntityListeners(AuditingEntityListener.class) @EqualsAndHashCode(onlyExplicitlyIncluded = true) -@Table(name = "mdb_constraints_foreign_key_reference") +@Table(name = "mdb_constraints_foreign_key_reference", uniqueConstraints = { + @UniqueConstraint(columnNames = {"fkid", "cid", "rcid"}) +}) public class ForeignKeyReference { @Id @@ -26,7 +28,7 @@ public class ForeignKeyReference { private Long id; @ToString.Exclude - @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST}) + @ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE}) @JoinColumn(name = "fkid", referencedColumnName = "fkid", nullable = false) private ForeignKey foreignKey; diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java index a0a8eab0cfc51369fa540382340d3b00cf358c52..bb355f02c4729338ecc4518b6c5af1267d0a5ae9 100644 --- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java +++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java @@ -539,17 +539,21 @@ public interface MetadataMapper { pk.getColumn().setTableId(data.getId()); pk.getColumn().setDatabaseId(data.getDatabase().getId()); }); - for (ForeignKeyDto fk : table.getConstraints().getForeignKeys()) { - fk.getTable().setDatabaseId(table.getTdbid()); - fk.getReferencedTable().setDatabaseId(table.getTdbid()); - for (ForeignKeyReferenceDto ref : fk.getReferences()) { - ref.setForeignKey(foreignKeyDtoToForeignKeyBriefDto(fk)); - ref.getColumn().setTableId(table.getId()); - ref.getColumn().setDatabaseId(table.getTdbid()); - ref.getReferencedColumn().setTableId(fk.getReferencedTable().getId()); - ref.getReferencedColumn().setDatabaseId(table.getTdbid()); - } - } + table.getConstraints() + .getForeignKeys() + .forEach(fk -> { + fk.getTable().setDatabaseId(table.getTdbid()); + fk.getReferencedTable().setDatabaseId(table.getTdbid()); + fk.getReferences() + .forEach(ref -> { + ref.setForeignKey(foreignKeyDtoToForeignKeyBriefDto(fk)); + ref.getColumn().setTableId(table.getId()); + ref.getColumn().setDatabaseId(table.getTdbid()); + ref.getReferencedColumn().setTableId(fk.getReferencedTable().getId()); + ref.getReferencedColumn().setDatabaseId(table.getTdbid()); + log.trace("mapped foreign key part ({}) reference ({})", ref.getColumn().getInternalName(), ref.getReferencedColumn().getInternalName()); + }); + }); table.getConstraints() .getUniques() .forEach(uk -> { diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java index 76871aa68ac3ea416ca73df0c990e5588b94300d..f42992781c36e438233dd1d376c17d631ac7f584 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java @@ -278,6 +278,15 @@ public class DatabaseServiceImpl implements DatabaseService { reference.setReferencedColumn(optional2.get()); } } + database.getTables() + .stream() + .filter(t -> t.getConstraints().getForeignKeys().size() > 0) + .map(t -> t.getConstraints().getForeignKeys()) + .flatMap(List::stream) + .filter(fk -> fk.getReferences().size() > 1) + .forEach(fk -> { + log.debug(""); + }); /* update in metadata database */ database = databaseRepository.save(database); /* save in search service */ diff --git a/dbrepo-search-service/Pipfile.lock b/dbrepo-search-service/Pipfile.lock index a0b551b34afeaa080332b83e6ece463440df3676..3388956b20ba3f223fdf3cdeb3eab5f1a5337022 100644 --- a/dbrepo-search-service/Pipfile.lock +++ b/dbrepo-search-service/Pipfile.lock @@ -340,9 +340,11 @@ }, "dbrepo": { "hashes": [ + "sha256:09a10584a44c952a7cf83852123c14bd2917ab009e50698c1f9d8c2690ec4bde", "sha256:2bdb48c70b4c99b5044fbfc12aa653c1e9281ca8913a433cc08a1e14cb4bd2ef" ], - "path": "./lib/dbrepo-1.4.4.tar.gz" + "path": "./lib/dbrepo-1.4.4.tar.gz", + "version": "==1.4.4" }, "docker": { "hashes": [ @@ -371,7 +373,6 @@ "sha256:f69fcd559dc907ed196ab9df0e48471709175e696d6e698dd4dbe940f96ce66b" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==2.3.3" }, "flask-cors": { @@ -396,7 +397,6 @@ "sha256:9215d05a9413d3855764bcd67035e75819d23af2fafb6b55197eb5a3313fdfb2" ], "index": "pypi", - "markers": "python_version >= '3.7' and python_version < '4'", "version": "==4.6.0" }, "flask-sqlalchemy": { @@ -405,7 +405,6 @@ "sha256:e4b68bb881802dda1a7d878b2fc84c06d1ee57fb40b874d3dc97dabfa36b8312" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==3.1.1" }, "frozenlist": { @@ -561,7 +560,6 @@ "sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63" ], "index": "pypi", - "markers": "python_version >= '3.7'", "version": "==22.0.0" }, "idna": { @@ -624,7 +622,6 @@ "sha256:61c9170f92e736b530655e75374681d4fcca9cfa8763ab42be57353b2b203494" ], "index": "pypi", - "markers": "python_version >= '3.6'", "version": "==1.3.1" }, "markupsafe": { @@ -845,16 +842,15 @@ "sha256:b6e78b685dd4e9c016d7a4299cf1de69e299c88322e3f81c716e6e23fe5683c1" ], "index": "pypi", - "markers": "python_version >= '3.8' and python_version < '4'", "version": "==2.6.0" }, "packaging": { "hashes": [ - "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", - "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9" + "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", + "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124" ], - "markers": "python_version >= '3.7'", - "version": "==24.0" + "markers": "python_version >= '3.8'", + "version": "==24.1" }, "pandas": { "hashes": [ @@ -1046,7 +1042,6 @@ "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==8.2.2" }, "python-dateutil": { @@ -1063,7 +1058,6 @@ "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==1.0.1" }, "pytz": { @@ -1136,7 +1130,6 @@ "sha256:9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae" ], "index": "pypi", - "markers": "python_full_version >= '3.8.1' and python_full_version < '4.0.0'", "version": "==7.0.0" }, "referencing": { @@ -1329,7 +1322,6 @@ "sha256:bc599c8c3b3319e53ce6c5c3c471120bd325d0071fb6f38a10e924e3d07b9990" ], "index": "pypi", - "markers": "python_version >= '3.7'", "version": "==0.41.2" }, "testcontainers-core": { @@ -1344,7 +1336,6 @@ "sha256:0bdf270b5b7f53915832f7c31dd2bd3ffdc20b534ea6b32231cc7003049bd0e1" ], "index": "pypi", - "markers": "python_version >= '3.7'", "version": "==0.0.1rc1" }, "tinydb": { @@ -1365,11 +1356,11 @@ }, "typing-extensions": { "hashes": [ - "sha256:6024b58b69089e5a89c347397254e35f1bf02a907728ec7fee9bf0fe837d203a", - "sha256:915f5e35ff76f56588223f15fdd5938f9a1cf9195c0de25130c627e4d597f6d1" + "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d", + "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8" ], "markers": "python_version >= '3.8'", - "version": "==4.12.1" + "version": "==4.12.2" }, "tzdata": { "hashes": [ @@ -1625,7 +1616,6 @@ "sha256:fd27d8b49e574e50caa65196d908f80e4dff64d7e592d0c59788b45aad7e8b35" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==7.5.3" }, "iniconfig": { @@ -1638,11 +1628,11 @@ }, "packaging": { "hashes": [ - "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", - "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9" + "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002", + "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124" ], - "markers": "python_version >= '3.7'", - "version": "==24.0" + "markers": "python_version >= '3.8'", + "version": "==24.1" }, "pluggy": { "hashes": [ @@ -1658,7 +1648,6 @@ "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977" ], "index": "pypi", - "markers": "python_version >= '3.8'", "version": "==8.2.2" } } diff --git a/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl b/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl index 694a6fc02560b3b5d858df0e5a0bd9acf45c8f20..503cfef91315990bbf06027d6de14c8b3184507b 100644 Binary files a/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl and b/dbrepo-search-service/lib/dbrepo-1.4.4-py3-none-any.whl differ diff --git a/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz b/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz index f344d01026b92476d80703cbfb7d884cb7822e05..9a90176f0a093b05d89d1cd74cf701cd0730861a 100644 Binary files a/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz and b/dbrepo-search-service/lib/dbrepo-1.4.4.tar.gz differ diff --git a/lib/python/dbrepo/RestClient.py b/lib/python/dbrepo/RestClient.py index 0a03fd669bd8b8a2834b42fb59b8456a4b7edabf..22790681d804174e4f522c4c568cbf1b93a5b90a 100644 --- a/lib/python/dbrepo/RestClient.py +++ b/lib/python/dbrepo/RestClient.py @@ -1138,7 +1138,7 @@ class RestClient: if response.status_code == 404: raise NotExistsError(f'Failed to delete database access: not found') raise ResponseCodeError( - f'Failed to delete database access: response code: {response.status_code} is not 202 (ACCEPTED)') + f'Failed to delete database access: response code: {response.status_code} is not 201 (CREATED)') def execute_query(self, database_id: int, query: str, page: int = 0, size: int = 10, timestamp: datetime.datetime = datetime.datetime.now()) -> Result: @@ -1167,7 +1167,7 @@ class RestClient: url += f'?page={page}&size={size}' response = self._wrapper(method="post", url=url, force_auth=True, payload=ExecuteQuery(statement=query, timestamp=timestamp)) - if response.status_code == 202: + if response.status_code == 201: body = response.json() return Result.model_validate(body) if response.status_code == 400: diff --git a/lib/python/tests/test_unit_query.py b/lib/python/tests/test_unit_query.py index 1a6109dc2b85e00e668eca0691dc36f9205ccc89..628a0914b230a8a2999a3e26d0fad24d6670a2c6 100644 --- a/lib/python/tests/test_unit_query.py +++ b/lib/python/tests/test_unit_query.py @@ -21,7 +21,7 @@ class QueryUnitTest(unittest.TestCase): headers=[{'id': 0, 'username': 1}], id=None) # mock - mock.post('/api/database/1/subset', json=exp.model_dump(), status_code=202) + mock.post('/api/database/1/subset', json=exp.model_dump(), status_code=201) # test client = RestClient(username="a", password="b") response = client.execute_query(database_id=1, page=0, size=10,