Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API for object pagination, count(*) #288

Merged
merged 93 commits into from
Apr 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
7805260
bumping version number
silvanheller Dec 8, 2021
d10d914
Added ThreadLocalObjectCache to reuse objects in a thread-safe manner
lucaro Dec 8, 2021
201edae
Implemented visual-text co-embedding extraction of full video segment…
Spiess Dec 8, 2021
1ecf39a
Implemented early return to conform to codebase guidelines.
Spiess Dec 9, 2021
f774eb9
Refactored visual-text co-embedding to load buffered image only once …
Spiess Dec 9, 2021
e442ec5
Removed unused and empty JavaDoc.
Spiess Dec 16, 2021
8a2ff57
Removed unused commented code.
Spiess Dec 16, 2021
0d9e982
Fixed JavaDoc errors.
Spiess Dec 16, 2021
6a2c5cd
Raised source and target language compatibility to Java 9.
Spiess Dec 16, 2021
4b2e801
Raised source and target language compatibility to Java 11 (LTS).
Spiess Dec 17, 2021
ef8d793
Reformatted all code to adhere to the project code-style.
Spiess Dec 22, 2021
cea3083
Fixed CottontailWrapper pretending connection was successful even whe…
Spiess Jan 4, 2022
baa963e
Merge master into dev
lucaro Jan 13, 2022
fa880b8
Added base structure for skeleton pose feature
lucaro Jan 21, 2022
cb2e51a
Implemented first version of skeleton retrieval logic
lucaro Jan 24, 2022
a0b1ac2
Added import mechanism for pre-extracted skeletons
lucaro Jan 24, 2022
7d557b9
Fix in entity creation for SkeletonPose
lucaro Jan 25, 2022
d11ca23
Towards querying with new cottontail functionality
lucaro Jan 25, 2022
946381b
Fixed some issues in query construction, successfully retrieved results
lucaro Jan 26, 2022
8b2d4c0
Added SkeletonQueryTermContainer
lucaro Jan 26, 2022
38fa477
Corrected query.
ppanopticon Jan 27, 2022
090dfd9
Extended function to be evaluated by cottontail
lucaro Feb 1, 2022
6524d81
Merge branch 'feature/PoseQueries' of https://github.com/vitrivr/cine…
lucaro Feb 2, 2022
36acbb7
Added missing alias for distance column.
Feb 2, 2022
814b088
Optimised INSERT in order to speed them up a little.
ppanopticon Feb 3, 2022
f929ebd
Added todos and fixmes :-)
ppanopticon Feb 4, 2022
7f716ab
Merge tag 'v3.7.0' into feature/PoseQueries
lucaro Feb 7, 2022
14cf627
Fixed post-merge issues
lucaro Feb 8, 2022
7967139
Added quantization to weights and fixed sort order in SkeletonPose
lucaro Feb 8, 2022
84888c5
moving wrapper-creation to trace
silvanheller Feb 9, 2022
4e6740e
fixing npe if maxLength is not specified
silvanheller Feb 9, 2022
c179dab
Merge remote-tracking branch 'origin/dev' into dev
lucaro Feb 9, 2022
f2ae89d
Merge remote-tracking branch 'origin/master' into dev
silvanheller Feb 10, 2022
94dce82
reasonable defaults for query parameters
silvanheller Feb 10, 2022
2e36f15
Merge remote-tracking branch 'origin/master' into dev
silvanheller Feb 11, 2022
158e6ad
Merge branch 'dev' of https://github.com/vitrivr/cineast into dev
lucaro Feb 12, 2022
178a16a
Fixed JSON deserialization of Skeleton.
ppanopticon Mar 4, 2022
58bfb3b
Merge remote-tracking branch 'origin/feature/PoseQueries' into featur…
ppanopticon Mar 4, 2022
f872bf4
adding providedOCR feature
silvanheller Mar 7, 2022
f17f94c
Merge remote-tracking branch 'origin/master' into vbs-22
silvanheller Mar 8, 2022
341ac14
disabling transactions for cottontail import, logging improvements
silvanheller Mar 8, 2022
930e5dd
Merge remote-tracking branch 'origin/vbs-22' into feature/PoseQueries
lucaro Mar 11, 2022
899dd45
Some hotfixes to get things working again
lucaro Mar 11, 2022
a2a1f67
Added more angles to SkeletonPose feature and cleaned up a bit
lucaro Mar 14, 2022
3c310fd
Merge remote-tracking branch 'origin/master' into feature/PoseQueries
silvanheller Mar 14, 2022
a102100
reformatting imports
silvanheller Mar 14, 2022
11e1795
fixing main
silvanheller Mar 14, 2022
0cbbc08
Added OpenPose-based pose detector
lucaro Mar 16, 2022
391ed57
Added pose detector based on Movenet
lucaro Mar 16, 2022
df5d9f0
Added caching to FileSystemObjectResolver
lucaro Mar 18, 2022
7e5f446
Added MergingPoseDetector
lucaro Mar 18, 2022
0314539
Updated Cottontail DB client dependency to 0.14.0-SNAPSHOT.
ppanopticon Mar 28, 2022
0412021
Name of entity for SkeletonPose is now consistent with the other Cine…
ppanopticon Mar 28, 2022
592696c
Added external model dependencies for pose detectors
lucaro Mar 28, 2022
92a71b4
Minor cleanup in SkeletonPose
lucaro Mar 28, 2022
4df6743
Merge remote-tracking branch 'origin/master' into dev
lucaro Mar 28, 2022
de5c217
Merge branch 'dev' into feature/PoseQueries
lucaro Mar 28, 2022
0838fef
Removed hack from TemporalQuery that is no longer needed
lucaro Mar 28, 2022
ab8090c
resolving merge-error which prevented index-creation, applying format…
silvanheller Apr 4, 2022
14b2ccb
Made expected patterns in FileSystemThumbnailResolver explicit
lucaro Apr 4, 2022
563f78a
Added cache-control header to ResolvedContentRoute
lucaro Apr 6, 2022
e22fba4
logic to fetch objects given a limit and a skip for pagination in a u…
silvanheller Apr 6, 2022
db31f71
implementing api endpoint, cleaning up constant usage
silvanheller Apr 7, 2022
6da78f3
wrapping up api implementation, adding count(*) command to rest api
silvanheller Apr 7, 2022
e0d69f8
forcing correct serialization for frontends which are using the opena…
silvanheller Apr 7, 2022
fd89578
Merge branch 'feature/PoseQueries' into get-limit-skip
silvanheller Apr 7, 2022
f4b1e04
fixing query-id name
silvanheller Apr 7, 2022
87e1983
adding missing / to api endpoint
silvanheller Apr 8, 2022
49b73ab
consistently using try-with-resources for object, segment and metadata
silvanheller Apr 8, 2022
7014a4b
updating openapi specs
silvanheller Apr 8, 2022
6cdd6ea
bumping version
silvanheller Apr 12, 2022
80481f8
adressing comments from review
silvanheller Apr 12, 2022
19ca74b
not executing empty in-clauses to prevent db-exceptions
silvanheller Apr 12, 2022
59d5b34
bumping version
silvanheller Apr 12, 2022
0301b11
re-generating openapi
silvanheller Apr 13, 2022
f3e6e0e
Merge branch 'feature/PoseQueries' into get-limit-skip
silvanheller Apr 13, 2022
8a73254
re-generating openapi
silvanheller Apr 13, 2022
ee2f54e
fixing bug from refactoring
silvanheller Apr 13, 2022
a435c71
Fixed index creation in light of recent changes to CreateIndex message.
Apr 13, 2022
e65970e
updating for index-structures
silvanheller Apr 13, 2022
df8f915
Merge branch 'feature/PoseQueries' into get-limit-skip
silvanheller Apr 13, 2022
fa70d91
enhanced logging, not setting name explicitly
silvanheller Apr 13, 2022
3e8b1a8
Merge branch 'feature/PoseQueries' into get-limit-skip
silvanheller Apr 13, 2022
9591b8a
returning empty result on error which is consistent with rest api beh…
silvanheller Apr 13, 2022
660967d
Adjusted version of Cottontail DB to prevent failure of integration t…
ppanopticon Apr 22, 2022
871e522
Merge remote-tracking branch 'origin/master' into feature/PoseQueries
silvanheller Apr 25, 2022
d9df3aa
bumping cottontail version for CI
silvanheller Apr 25, 2022
75bcd9f
Merge branch 'feature/PoseQueries' into get-limit-skip
silvanheller Apr 25, 2022
3b156d6
re-generating openapi
silvanheller Apr 25, 2022
c736dfc
Merge branch 'feature/PoseQueries' into get-limit-skip
silvanheller Apr 25, 2022
3cf3b1b
re-generating openapi
silvanheller Apr 25, 2022
6b4b41b
cleanup, improving example config, fixing bugs which caused default e…
silvanheller Apr 25, 2022
890cc8d
Merge remote-tracking branch 'origin/master' into get-limit-skip
silvanheller Apr 26, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ allprojects {
group = 'org.vitrivr'

/* Our current version, on dev branch this should always be release+1-SNAPSHOT */
version = '3.11.0'
version = '3.11.1'

apply plugin: 'java-library'
apply plugin: 'maven-publish'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,11 @@
import org.vitrivr.cineast.api.rest.handlers.actions.feature.FindSegmentFeaturesGetHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.feature.FindSegmentTextGetHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.feature.FindTagsForElementGetHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.bool.CountRowsGetHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.mediaobject.FindObjectAllGetHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.mediaobject.FindObjectByIdPostHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.mediaobject.FindObjectGetHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.mediaobject.FindObjectPaginationGetHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataByDomainGetHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataByDomainPostHandler;
import org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataByKeyGetHandler;
Expand Down Expand Up @@ -401,6 +403,7 @@ private void registerRestOperations() {
new FindObjectAllGetHandler(),
new FindObjectByIdPostHandler(),
new FindObjectGetHandler(),
new FindObjectPaginationGetHandler(),
/* Segments */
new FindSegmentByIdPostHandler(),
new FindSegmentsByIdGetHandler(),
Expand All @@ -427,6 +430,7 @@ private void registerRestOperations() {
/* Boolean */
new FindDistinctElementsByColumnPostHandler(),
new SelectFromTablePostHandler(),
new CountRowsGetHandler(),
/* Status */
new StatusInvocationHandler()
));
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package org.vitrivr.cineast.api.messages.general;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

public class IntegerMessage {

private final int value;

@JsonCreator
public IntegerMessage(@JsonProperty("value") int value) {
this.value = value;
}

public int getValue() {
return value;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package org.vitrivr.cineast.api.rest.handlers.actions.bool;

import static org.vitrivr.cineast.api.util.APIConstants.TABLE_NAME;

import io.javalin.http.Context;
import io.javalin.plugin.openapi.dsl.OpenApiBuilder;
import io.javalin.plugin.openapi.dsl.OpenApiDocumentation;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.vitrivr.cineast.api.messages.general.IntegerMessage;
import org.vitrivr.cineast.api.rest.handlers.interfaces.GetRestHandler;
import org.vitrivr.cineast.standalone.config.Config;

public class CountRowsGetHandler implements GetRestHandler<IntegerMessage> {

public static final String ROUTE = "count/table/{" + TABLE_NAME + "}";

private static final Logger LOGGER = LogManager.getLogger(CountRowsGetHandler.class);

@Override
public IntegerMessage doGet(Context ctx) {
try (final var selector = Config.sharedConfig().getDatabase().getSelectorSupplier().get()) {
var tableName = ctx.pathParam(TABLE_NAME);
selector.open(tableName);
var count = selector.rowCount();
LOGGER.trace("counted {} objects in table {}", count, tableName);
return new IntegerMessage(count);
}
}

@Override
public Class<IntegerMessage> outClass() {
return IntegerMessage.class;
}

@Override
public String route() {
return ROUTE;
}

@Override
public OpenApiDocumentation docs() {
return OpenApiBuilder.document()
.operation(op -> {
op.summary("Count objects");
op.description("Equivalent to calling SELECT count(*) FROM table. Used to determined #pages for pagination in a frontend or statistical purposes");
op.operationId("countRows");
op.addTagsItem("Misc");
})
.json("200", outClass());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
import org.vitrivr.cineast.api.rest.handlers.interfaces.GetRestHandler;
import org.vitrivr.cineast.api.util.QueryUtil;

public class FindSegmentFeaturesGetHandler implements
GetRestHandler<FeaturesAllCategoriesQueryResult> {
public class FindSegmentFeaturesGetHandler implements GetRestHandler<FeaturesAllCategoriesQueryResult> {

public static final String ROUTE = "find/feature/all/by/id/{" + ID_QUALIFIER + "}";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,20 @@
import io.javalin.http.Context;
import io.javalin.plugin.openapi.dsl.OpenApiBuilder;
import io.javalin.plugin.openapi.dsl.OpenApiDocumentation;
import java.util.List;
import org.vitrivr.cineast.api.messages.result.MediaObjectQueryResult;
import org.vitrivr.cineast.api.rest.handlers.interfaces.GetRestHandler;
import org.vitrivr.cineast.core.data.entities.MediaObjectDescriptor;
import org.vitrivr.cineast.core.db.dao.reader.MediaObjectReader;
import org.vitrivr.cineast.standalone.config.Config;

public class FindObjectAllGetHandler implements GetRestHandler<MediaObjectQueryResult> {


public static final String TYPE_NAME = "type";

public static final String ROUTE = "find/objects/all/"; // The more honest route
// public static final String ROUTE = "find/objects/all/:"+TYPE_NAME;

@Override
public MediaObjectQueryResult doGet(Context ctx) {
// TODO :type is not being used
final MediaObjectReader ol = new MediaObjectReader(Config.sharedConfig().getDatabase().getSelectorSupplier().get());
final List<MediaObjectDescriptor> multimediaobjectIds = ol.getAllObjects();
ol.close();
return new MediaObjectQueryResult("", multimediaobjectIds);
try (final MediaObjectReader ol = new MediaObjectReader(Config.sharedConfig().getDatabase().getSelectorSupplier().get())) {
return new MediaObjectQueryResult("", ol.getAllObjects());
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,12 @@ public class FindObjectByIdPostHandler implements ParsingPostRestHandler<IdList,

@Override
public MediaObjectQueryResult performPost(IdList context, Context ctx) {
final Map<String, String> parameters = ctx.pathParamMap();
if (context == null || context.getIds().length == 0) {
return new MediaObjectQueryResult("", new ArrayList<>(0));
}
final MediaObjectReader ol = new MediaObjectReader(Config.sharedConfig().getDatabase().getSelectorSupplier().get());
final Map<String, MediaObjectDescriptor> objects = ol.lookUpObjects(Arrays.asList(context.getIds()));
ol.close();
return new MediaObjectQueryResult("", new ArrayList<>(objects.values()));
try (final MediaObjectReader ol = new MediaObjectReader(Config.sharedConfig().getDatabase().getSelectorSupplier().get())) {
return new MediaObjectQueryResult("", new ArrayList<>(ol.lookUpObjects(Arrays.asList(context.getIds())).values()));
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package org.vitrivr.cineast.api.rest.handlers.actions.mediaobject;

import static org.vitrivr.cineast.api.util.APIConstants.ATTRIBUTE_NAME;
import static org.vitrivr.cineast.api.util.APIConstants.VALUE_NAME;

import com.google.common.collect.Lists;
import io.javalin.http.Context;
import io.javalin.plugin.openapi.dsl.OpenApiBuilder;
Expand All @@ -15,44 +18,38 @@

public class FindObjectGetHandler implements GetRestHandler<MediaObjectQueryResult> {

public static final String ATTRIBUTE_NAME = "attribute";
public static final String VALUE_NAME = "value";

public static final String ROUTE = "find/object/by/{" + ATTRIBUTE_NAME + "}/{" + VALUE_NAME + "}";

private static final Logger LOGGER = LogManager.getLogger(FindObjectGetHandler.class);


@Override
public MediaObjectQueryResult doGet(Context ctx) {
final Map<String, String> parameters = ctx.pathParamMap();

final String attribute = parameters.get(ATTRIBUTE_NAME);
final String value = parameters.get(VALUE_NAME);

final MediaObjectReader ol = new MediaObjectReader(Config.sharedConfig().getDatabase().getSelectorSupplier().get());
MediaObjectDescriptor object = null;

switch (attribute.toLowerCase()) {
case "id": {
object = ol.lookUpObjectById(value);
break;
}
case "name": {
object = ol.lookUpObjectByName(value);
break;
}
case "path": {
object = ol.lookUpObjectByPath(value);
break;
}
default: {
LOGGER.error("Unknown attribute '{}' in FindObjectByActionHandler", attribute);
try (final MediaObjectReader ol = new MediaObjectReader(Config.sharedConfig().getDatabase().getSelectorSupplier().get())) {
MediaObjectDescriptor object = null;
switch (attribute.toLowerCase()) {
case "id": {
object = ol.lookUpObjectById(value);
break;
}
case "name": {
object = ol.lookUpObjectByName(value);
break;
}
case "path": {
object = ol.lookUpObjectByPath(value);
break;
}
default: {
LOGGER.error("Unknown attribute '{}' in FindObjectByActionHandler", attribute);
}
}
return new MediaObjectQueryResult("", Lists.newArrayList(object));
}

ol.close();
return new MediaObjectQueryResult("", Lists.newArrayList(object));
}

@Override
Expand All @@ -75,6 +72,7 @@ public OpenApiDocumentation docs() {
op.addTagsItem("Object");
})
.pathParam(ATTRIBUTE_NAME, String.class, p -> p.description("The attribute type of the value. One of: id, name, path"))
.pathParam(VALUE_NAME, String.class, p -> p.description("The actual value that you want to filter for"))
.json("200", outClass());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package org.vitrivr.cineast.api.rest.handlers.actions.mediaobject;

import static org.vitrivr.cineast.api.util.APIConstants.LIMIT_NAME;
import static org.vitrivr.cineast.api.util.APIConstants.SKIP_NAME;

import io.javalin.http.Context;
import io.javalin.plugin.openapi.dsl.OpenApiBuilder;
import io.javalin.plugin.openapi.dsl.OpenApiDocumentation;
import java.util.ArrayList;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.vitrivr.cineast.api.messages.result.MediaObjectQueryResult;
import org.vitrivr.cineast.api.rest.handlers.interfaces.GetRestHandler;
import org.vitrivr.cineast.core.db.dao.reader.MediaObjectReader;
import org.vitrivr.cineast.standalone.config.Config;

public class FindObjectPaginationGetHandler implements GetRestHandler<MediaObjectQueryResult> {

public static final String ROUTE = "find/object/all/{" + SKIP_NAME + "}/{" + LIMIT_NAME + "}";

private static final Logger LOGGER = LogManager.getLogger(FindObjectPaginationGetHandler.class);

@Override
public MediaObjectQueryResult doGet(Context ctx) {
final Map<String, String> parameters = ctx.pathParamMap();

try (final MediaObjectReader ol = new MediaObjectReader(Config.sharedConfig().getDatabase().getSelectorSupplier().get())) {
final var skipParam = parameters.get(SKIP_NAME);
final var skip = skipParam == null ? 0 : Integer.parseInt(skipParam);
final var limitParam = parameters.get(LIMIT_NAME);
final var limit = limitParam == null ? Integer.MAX_VALUE : Integer.parseInt(limitParam);

var result = ol.getAllObjects(skip, limit);
LOGGER.trace("returning {} elements for skip {} and limit {}", result.size(), skip, limit);
return new MediaObjectQueryResult("", result);
} catch (Exception e) {
LOGGER.error("Error during request", e);
return new MediaObjectQueryResult("", new ArrayList<>());
}
}

@Override
public Class<MediaObjectQueryResult> outClass() {
return MediaObjectQueryResult.class;
}

@Override
public String route() {
return ROUTE;
}

@Override
public OpenApiDocumentation docs() {
return OpenApiBuilder.document()
.operation(op -> {
op.summary("Get a fixed amount of objects from the sorted list");
op.description("Equivalent to calling SELECT * FROM multimediaobject ORDER BY objectid ASC LIMIT limit SKIP skip. Mostly used for pagination when wanting to retrieve all objects");
op.operationId("findObjectsPagination");
op.addTagsItem("Object");
})
.pathParam(LIMIT_NAME, Integer.class, p -> p.description("How many object at most should be fetched"))
.pathParam(SKIP_NAME, Integer.class, p -> p.description("How many objects should be skipped"))
.json("200", outClass());
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.vitrivr.cineast.api.rest.handlers.actions.metadata;

import static org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataFullyQualifiedGetHandler.DOMAIN_NAME;
import static org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataFullyQualifiedGetHandler.OBJECT_ID_NAME;
import static org.vitrivr.cineast.api.util.APIConstants.DOMAIN_NAME;

import io.javalin.http.Context;
import io.javalin.plugin.openapi.dsl.OpenApiBuilder;
Expand All @@ -21,17 +21,15 @@
public class FindObjectMetadataByDomainGetHandler implements GetRestHandler<MediaObjectMetadataQueryResult> {


public static final String ROUTE = "find/metadata/in/{" + DOMAIN_NAME + "}/by/id/{" + APIConstants.ID_QUALIFIER
+ "}";
public static final String ROUTE = "find/metadata/in/{" + DOMAIN_NAME + "}/by/id/{" + APIConstants.ID_QUALIFIER + "}";

@Override
public MediaObjectMetadataQueryResult doGet(Context ctx) {
final Map<String, String> parameters = ctx.pathParamMap();
final String objectId = parameters.get(OBJECT_ID_NAME);
final String domain = parameters.get(DOMAIN_NAME);
final MetadataRetrievalService service = new MetadataRetrievalService();
return new MediaObjectMetadataQueryResult("",
service.findByDomain(objectId, domain));
return new MediaObjectMetadataQueryResult("", service.findByDomain(objectId, domain));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.vitrivr.cineast.api.rest.handlers.actions.metadata;

import static org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataFullyQualifiedGetHandler.DOMAIN_NAME;
import static org.vitrivr.cineast.api.util.APIConstants.DOMAIN_NAME;

import io.javalin.http.Context;
import io.javalin.plugin.openapi.dsl.OpenApiBuilder;
Expand Down Expand Up @@ -33,8 +33,7 @@ public MediaObjectMetadataQueryResult performPost(IdList ids, Context ctx) {
}
final String domain = parameters.get(DOMAIN_NAME);
final MetadataRetrievalService service = new MetadataRetrievalService();
return new MediaObjectMetadataQueryResult("",
service.findByDomain(ids.getIdList(), domain));
return new MediaObjectMetadataQueryResult("", service.findByDomain(ids.getIdList(), domain));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.vitrivr.cineast.api.rest.handlers.actions.metadata;

import static org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataFullyQualifiedGetHandler.KEY_NAME;
import static org.vitrivr.cineast.api.util.APIConstants.KEY_NAME;
import static org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataFullyQualifiedGetHandler.OBJECT_ID_NAME;

import io.javalin.http.Context;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.vitrivr.cineast.api.rest.handlers.actions.metadata;

import static org.vitrivr.cineast.api.rest.handlers.actions.metadata.FindObjectMetadataFullyQualifiedGetHandler.KEY_NAME;
import static org.vitrivr.cineast.api.util.APIConstants.KEY_NAME;

import io.javalin.http.Context;
import io.javalin.plugin.openapi.dsl.OpenApiBuilder;
Expand Down
Loading