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

Merge from BI Server #2

Open
wants to merge 66 commits into
base: brapi-server-v2
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
aa958f9
[BI-1771] - performance experiments
mlm483 Aug 1, 2023
d370995
[BI-1771] - added germplasm-related indexes
jloux-brapi Dec 17, 2024
853c4b6
[BI-1771] - reverted index annotation
mlm483 Aug 3, 2023
1bafb97
[BI-1771] - reverted whitespace changes
mlm483 Aug 3, 2023
511744a
[BI-1771] - made create_indexes.sql idempotent
mlm483 Aug 14, 2023
17f208b
[BI-1909] Exploring converting *ToOne relationships to lazy loading a…
timparsons Sep 13, 2023
65f41bb
[BI-1909] NPE fix, converting sysouts to use Logger
timparsons Sep 15, 2023
f213636
[BI-1909] Updating GermplasmService to eagerly fetch related date for…
timparsons Sep 19, 2023
444ac44
[BI-1909] suggested changes
timparsons Sep 22, 2023
7ae834a
Create pull.yml
timparsons Nov 9, 2023
f3963b0
[BI-1945] - saving work in progress
mlm483 Oct 24, 2023
14347ea
[BI-1945] - store additionalInfo on primary entities as JSONB
mlm483 Oct 25, 2023
0a6c1c6
[BI-1945] - optimized imports
mlm483 Oct 25, 2023
dfe5e82
[BI-1945] - updated template, readme
jloux-brapi Dec 17, 2024
32a1c91
[BI-1945] - cleaned up SQL dummy data migrations
mlm483 Oct 26, 2023
c31973b
[BI-1945] - updated template
mlm483 Oct 26, 2023
3d73553
[BI-1945] - removed unused class
mlm483 Oct 26, 2023
213d51b
[BI-1945] - renamed method
mlm483 Oct 26, 2023
ea38550
[BI-1945] - handled null case
mlm483 Oct 27, 2023
14d780c
[BI-1945] - added stringtype=unspecified to template
mlm483 Oct 27, 2023
027eff8
[BI-1945] - removed debug log
mlm483 Nov 6, 2023
2e57478
[BI-1945] - optimized imports
mlm483 Nov 6, 2023
246e6a1
[BI-1945] - removed additionalInfo joins
mlm483 Nov 6, 2023
44c6a6a
[BI-1945] - updated README.md
mlm483 Nov 6, 2023
4d25468
[BI-1945] - added ON DELETE CASCADE to xref linking tables
mlm483 Nov 14, 2023
530ae23
[BI-2051] - batched inserts for efficiency
mlm483 Feb 6, 2024
1777923
[BI-2051] - removed comment
mlm483 Feb 8, 2024
9bb3096
[BI-2040] The fetchScaleValidValueCategories() method was causing the…
davedrp Feb 5, 2024
dc3aa96
[BI-2040] removed all calls to fetchXXXXX(page) and the methods thems…
davedrp Feb 5, 2024
f3c8871
[BI-2040] removed unused import-statements from ObservationVariableSe…
davedrp Feb 5, 2024
b850578
[BI-2078] - made performance improvements (thanks BrapiCoordinatorSelby)
mlm483 Mar 11, 2024
0c226fb
Filter out pedigree nodes with null germplasm
nickpalladino Apr 17, 2024
af5e584
Updated comment
nickpalladino Apr 19, 2024
f02603a
[BI-2109] - added migration for datasets
mlm483 Jun 28, 2024
df79493
[BI-2109] - made migration safer
mlm483 Jul 2, 2024
d2c9401
[BI-2304] - added migrations for list position
mlm483 Sep 18, 2024
ad9ae52
[BI-2304] - fixed migration
mlm483 Sep 19, 2024
38978d3
[BI-2304] - preserve list order without changing API
mlm483 Sep 20, 2024
1409352
[BI-2304] - used zero-indexing in migration
mlm483 Sep 20, 2024
e2548a7
[BI-2304] - changes based on review
mlm483 Oct 2, 2024
8281201
create batch entity and controller endpoints
dmeidlin Oct 21, 2024
92aa47f
json deserialize searchrequest sub-types
dmeidlin Oct 22, 2024
7b6b61a
return batchDbID in POST batches response results
dmeidlin Oct 23, 2024
e74184b
refactor
dmeidlin Oct 24, 2024
5c00c3d
add constraint to cascade on delete for list_item
dmeidlin Oct 25, 2024
beb95c4
add soft_deleted column to list tables
dmeidlin Oct 26, 2024
9ebbfb1
modify list repository to include clause softDelete=falsee
dmeidlin Oct 26, 2024
ed8ee46
use where clause and transactional annotations
dmeidlin Oct 27, 2024
0c38c55
soft-delete batch lists
dmeidlin Oct 28, 2024
0191666
add hard delete of single trial
dmeidlin Oct 28, 2024
0547cbc
create hard-delete endpoint for single sample
dmeidlin Oct 29, 2024
d659040
cascade delete for trial and sample
dmeidlin Oct 29, 2024
0d4ac86
add soft_delete columns to trial and sample related tables
dmeidlin Oct 29, 2024
fc10679
create sample service soft-delete method
dmeidlin Oct 29, 2024
aa8b86f
add soft-delete method to trial service
dmeidlin Oct 29, 2024
a5d8656
create Trial and Sample components
dmeidlin Oct 29, 2024
b96e1c9
optimize imports
dmeidlin Nov 5, 2024
f2036bf
respond with 204 for successful delete
dmeidlin Dec 3, 2024
cbdd0f3
return entity dbids in response for POST deleteBatch
dmeidlin Dec 3, 2024
493f88f
add batchDeleteDbId query param to GET endpoints for lists, trials, s…
dmeidlin Dec 3, 2024
6fa2c21
create new exception class for wrong batch delete type
dmeidlin Dec 3, 2024
71cdbb1
delete batch entity when deleting batch contents
dmeidlin Dec 4, 2024
bd2b039
add cascade delete constraints for study foreign keys
dmeidlin Dec 9, 2024
0efca81
rename batch to batch delete
dmeidlin Dec 13, 2024
b57a17d
Solve dummy data migration issues
jloux-brapi Dec 17, 2024
b7ecfda
Merge pull request #75 from plantbreeding/keycloak-dev-docker
jloux-brapi Dec 16, 2024
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
11 changes: 11 additions & 0 deletions .github/pull.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: "1"
rules:
- base: develop
upstream: plantbreeding:brapi-server-v2
mergeMethod: merge
assignees:
- nickpalladino
- mlm483
- dmeidlin
- davedrp
label: "upstream-merge"
12 changes: 7 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# build image : `docker build -t brapicoordinatorselby/brapi-java-server ./`
# run container (dev): `docker run --name=brapi-test-server --network=bridge -p 8081:8081 -d brapicoordinatorselby/brapi-java-server`
# run container (prod): `docker run --name=brapi-test-server --restart always --network=brapi_net -d brapicoordinatorselby/brapi-java-server`
# build image stack: `docker build -t docker-username/image-stack-name ./`
# run container (dev): `docker run --name=brapi-test-server --network=bridge -p 8081:8081 -d docker-username/image-stack-name`
# run container (prod): `docker run --name=brapi-test-server --restart always --network=brapi_net -d docker-username/image-stack-name`

FROM adoptopenjdk/openjdk8

EXPOSE 8080
# 8080 - brapi app port | 5005 - brapi app debug port | 8008 - keycloak app port
EXPOSE 8080 5005 8008

RUN mkdir /home/brapi

COPY target/brapi-Java-TestServer-0.1.0.jar src/main/resources/ /home/brapi/

CMD java -cp "/home/brapi/:/home/brapi/brapi-Java-TestServer-0.1.0.jar" org.springframework.boot.loader.JarLauncher
# Open up debug port on JVM
CMD java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005 -cp "/home/brapi/:/home/brapi/brapi-Java-TestServer-0.1.0.jar" org.springframework.boot.loader.JarLauncher
279 changes: 271 additions & 8 deletions README.md

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions docker-compose-dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
services:
brapi-java-server-v2:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
- "5005:5005"
depends_on:
- brapi-db
volumes:
- .\src\main\resources\properties\application.properties:/home/brapi/properties/application.properties
brapi-db:
image: postgres:13
environment:
POSTGRES_USER: brapi
POSTGRES_PASSWORD: password
volumes:
- /var/lib/postgresql/data
ports:
- "5433:5432"
61 changes: 61 additions & 0 deletions docker-compose-local-auth.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
services:
brapi-java-server-v2:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
- "5005:5005"
depends_on:
- brapi-db
volumes:
- .\src\main\resources\properties\application.properties:/home/brapi/properties/application.properties
keycloak-brapi:
image: quay.io/keycloak/keycloak:latest
entrypoint: /opt/keycloak/bin/kc.sh start-dev
depends_on:
- keycloak-db
environment:
- KEYCLOAK_USER=admin
- KEYCLOAK_PASSWORD=admin
# The KC_HOSTNAME needs to be the same as the defined keycloak-brapi service in the compose file for a local setup.
# This allows the brapi app to talk to the keycloak container via the service name in the url, and sets up keycloak
# url defaults so that when brapi gets auth urls from keycloak it can still talk to it.
- KC_HOSTNAME=keycloak-brapi
- KC_DB=postgres
- KC_DB_URL=jdbc:postgresql://keycloak-db:5432/keycloak
- KC_DB_SCHEMA=public
- KC_DB_USERNAME=keycloak
- KC_DB_PASSWORD=password
- KC_HOSTNAME_STRICT=false
- KC_HOSTNAME_STRICT_HTTPS=false
- KC_HTTP_PORT=8008

- KC_LOG_LEVEL=info
- KC_METRICS_ENABLED=true
- KC_HEALTH_ENABLED=true
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=admin
ports:
- "8008:8008"
brapi-db:
image: postgres:13
environment:
POSTGRES_USER: brapi
POSTGRES_PASSWORD: password
volumes:
- brapi-data:/var/lib/postgresql/data
ports:
- "5433:5432"
keycloak-db:
image: postgres:13
volumes:
- keycloak-data:/var/lib/postgresql/data
environment:
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
ports:
- "5434:5432"
volumes:
keycloak-data:
brapi-data:
12 changes: 6 additions & 6 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
version: '3'

services:
# Update this image with whatever image you have access to
brapi-java-server-v1:
image: brapicoordinatorselby/brapi-java-server:v1
restart: unless-stopped
depends_on:
- postgres
volumes:
- /home/jenkins/brapi.org/brapi-test-server/properties/v1/application.properties:/home/brapi/properties/application.properties
brapi-java-server-v2:
# Update this image with whatever image you have access to
image: brapicoordinatorselby/brapi-java-server:v2
restart: unless-stopped
depends_on:
- postgres
volumes:
# Update this path with the path your pipeline tool expects
- /home/jenkins/brapi.org/brapi-test-server/properties/v2/application.properties:/home/brapi/properties/application.properties
keycloak-brapi:
# Update this image with whatever keycloak image you have access to
image: brapicoordinatorselby/brapi-keycloak:latest
restart: unless-stopped
entrypoint: /opt/keycloak/bin/kc.sh start --optimized --proxy edge
depends_on:
- postgres
environment:
# These vars will change depending on how you have configured your keycloak DB
- KEYCLOAK_USER
- KEYCLOAK_PASSWORD
- KC_HOSTNAME=auth.brapi.org
Expand All @@ -31,8 +31,8 @@ services:
- KC_DB_PASSWORD
postgres:
image: postgres:13
restart: unless-stopped
volumes:
# Update this path with the path your pipeline tool expects
- /home/jenkins/brapi.org/brapi-test-server/data:/var/lib/postgresql/data
networks:
default:
Expand Down
129 changes: 129 additions & 0 deletions src/main/java/io/swagger/api/core/BatchDeletesApi.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
/**
* NOTE: This class is auto generated by the swagger code generator program (3.0.18).
* https://github.com/swagger-api/swagger-codegen
* Do not edit the class manually.
*/
package io.swagger.api.core;

import io.swagger.model.BrAPIResponse;
import io.swagger.model.Model202AcceptedSearchResponse;
import io.swagger.model.core.*;
import io.swagger.annotations.*;

import org.brapi.test.BrAPITestServer.exceptions.BrAPIServerException;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import jakarta.validation.Valid;

import java.util.ArrayList;

@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.SpringCodegen", date = "2020-03-20T16:31:52.030Z[GMT]")
@Api(value = "batchDeletes", description = "the batch deletes API")
public interface BatchDeletesApi {

@ApiOperation(value = "Get the details of a specific Batch Delete", nickname = "batchDeletesBatchDbIdGet", notes = "Get a specific generic batch delete", response = BatchDeletesSingleResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "BatchDeletes", })
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = BatchDeletesSingleResponse.class),
@ApiResponse(code = 400, message = "Bad Request", response = String.class),
@ApiResponse(code = 401, message = "Unauthorized", response = String.class),
@ApiResponse(code = 403, message = "Forbidden", response = String.class),
@ApiResponse(code = 404, message = "Not Found", response = String.class) })
@RequestMapping(value = "/batchDeletes/{batchDeleteDbId}", produces = { "application/json" }, method = RequestMethod.GET)
ResponseEntity<BatchDeletesSingleResponse> batchDeletesBatchDbIdGet(
@ApiParam(value = "The unique ID of this generic batch", required = true) @PathVariable("batchDeletDbId") String batchDbId,
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization)
throws BrAPIServerException;

@ApiOperation(value = "Add Items to a specific Batch Delete", nickname = "batchDeletesBatchDbIdItemsPost", notes = "Add new data to a specific generic batch delete", response = BatchDeleteResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "BatchDeletes", })
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = BatchDeleteResponse.class),
@ApiResponse(code = 400, message = "Bad Request", response = String.class),
@ApiResponse(code = 401, message = "Unauthorized", response = String.class),
@ApiResponse(code = 403, message = "Forbidden", response = String.class),
@ApiResponse(code = 404, message = "Not Found", response = String.class) })
@RequestMapping(value = "/batchDeletes/{batchDeleteDbId}/items", produces = { "application/json" }, consumes = {
"application/json" }, method = RequestMethod.POST)
ResponseEntity<BatchDeleteResponse> batchDeletesBatchDbIdItemsPost(
@ApiParam(value = "The unique ID of this generic batch", required = true) @PathVariable("batchDeleteDbId") String batchDeleteDbId,
@ApiParam(value = "") @Valid @RequestBody ArrayList<String> body,
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization)
throws BrAPIServerException;

@ApiOperation(value = "Add Items to a specific Batch Delete", nickname = "batchDeletesBatchDbIdDataPost", notes = "Add new data to a specific generic batch delete", response = BatchDeleteResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "BatchDeletes", })
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = BatchDeleteResponse.class),
@ApiResponse(code = 400, message = "Bad Request", response = String.class),
@ApiResponse(code = 401, message = "Unauthorized", response = String.class),
@ApiResponse(code = 403, message = "Forbidden", response = String.class),
@ApiResponse(code = 404, message = "Not Found", response = String.class) })
@RequestMapping(value = "/batchDeletes/{batchDeleteDbId}/data", produces = { "application/json" }, consumes = {
"application/json" }, method = RequestMethod.POST)
ResponseEntity<BatchDeleteResponse> batchDeletesBatchDbIdDataPost(
@ApiParam(value = "The unique ID of this generic batch", required = true) @PathVariable("batchDeleteDbId") String batchDbId,
@ApiParam(value = "") @Valid @RequestBody ArrayList<String> body,
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization)
throws BrAPIServerException;

@ApiOperation(value = "Update an existing generic batch delete", nickname = "batchDeletesBatchDbIdPut", notes = "Update an existing generic batch delete", response = BatchDeletesSingleResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "BatchDeletes", })
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = BatchDeletesSingleResponse.class),
@ApiResponse(code = 400, message = "Bad Request", response = String.class),
@ApiResponse(code = 401, message = "Unauthorized", response = String.class),
@ApiResponse(code = 403, message = "Forbidden", response = String.class),
@ApiResponse(code = 404, message = "Not Found", response = String.class) })
@RequestMapping(value = "/batchDeletes/{batchDeleteDbId}", produces = { "application/json" }, consumes = {
"application/json" }, method = RequestMethod.PUT)
ResponseEntity<BatchDeletesSingleResponse> batchDeletesBatchDbIdPut(
@ApiParam(value = "The unique ID of this generic batch", required = true) @PathVariable("batchDeleteDbId") String batchDbId,
@ApiParam(value = "") @Valid @RequestBody BatchDeleteNewRequest body,
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization)
throws BrAPIServerException;

@ApiOperation(value = "Create a New Batch Delete", nickname = "batchDeletesPost", notes = "Create a new batch delete", response = BatchDeletesListResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "BatchDeletes", })
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = BatchDeletesListResponse.class),
@ApiResponse(code = 400, message = "Bad Request", response = String.class),
@ApiResponse(code = 401, message = "Unauthorized", response = String.class),
@ApiResponse(code = 403, message = "Forbidden", response = String.class) })
@RequestMapping(value = "/batchDeletes", produces = { "application/json" }, consumes = {
"application/json" }, method = RequestMethod.POST)
ResponseEntity<? extends BrAPIResponse> batchDeletesPost(@ApiParam(value = "") @Valid @RequestBody BatchDeleteSearchRequest body,
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization)
throws BrAPIServerException;

@ApiOperation(value = "Get the results of a Batch Delete search request", nickname = "searchBatchDeletesSearchResultsDbIdGet", notes = "Advanced searching for the batch delete resource. See Search Services for additional implementation details.", response = BatchDeletesListResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "BatchDeletes", })
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = BatchDeletesListResponse.class),
@ApiResponse(code = 202, message = "Accepted", response = Model202AcceptedSearchResponse.class),
@ApiResponse(code = 400, message = "Bad Request", response = String.class),
@ApiResponse(code = 401, message = "Unauthorized", response = String.class),
@ApiResponse(code = 403, message = "Forbidden", response = String.class) })
@RequestMapping(value = "/search/batchDeletes/{searchResultsDbId}", produces = {
"application/json" }, method = RequestMethod.GET)
ResponseEntity<? extends BrAPIResponse> searchBatchDeletesSearchResultsDbIdGet(
@ApiParam(value = "Permanent unique identifier which references the search results", required = true) @PathVariable("searchResultsDbId") String searchResultsDbId,
@ApiParam(value = "page") @Valid @RequestParam(value = "page", required = false) Integer page,
@ApiParam(value = "pageSize") @Valid @RequestParam(value = "pageSize", required = false) Integer pageSize,
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization) throws BrAPIServerException;

@ApiOperation(value = "Delete a specific Batch Delete", nickname = "batchDeletesBatchDbIdDelete", notes = "Delete a specific generic batch delete", response = BatchDeletesSingleResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "BatchDeletes", })
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = BatchDeletesSingleResponse.class),
@ApiResponse(code = 400, message = "Bad Request", response = String.class),
@ApiResponse(code = 401, message = "Unauthorized", response = String.class),
@ApiResponse(code = 403, message = "Forbidden", response = String.class),
@ApiResponse(code = 404, message = "Not Found", response = String.class) })
@RequestMapping(value = "/batchDeletes/{batchDeleteDbId}", produces = { "application/json" }, method = RequestMethod.DELETE)
ResponseEntity<BatchDeletesSingleResponse> batchDeletesBatchDbIdDelete(
@ApiParam(value = "The unique ID of this generic batch", required = true) @PathVariable("batchDeleteDbId") String batchDbId,
@ApiParam(value = "hard") @Valid @RequestParam(value = "hardDelete", defaultValue = "false", required = false) boolean hardDelete,
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization)
throws BrAPIServerException;

}
15 changes: 15 additions & 0 deletions src/main/java/io/swagger/api/core/ListsApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public interface ListsApi {
@ApiResponse(code = 403, message = "Forbidden", response = String.class) })
@RequestMapping(value = "/lists", produces = { "application/json" }, method = RequestMethod.GET)
ResponseEntity<ListsListResponse> listsGet(
@ApiParam(value = "batchDeleteDbId") @Valid @RequestParam(value = "batchDeleteDbId", required = false) String batchDelete,
@ApiParam(value = "listType") @Valid @RequestParam(value = "listType", required = false) String listType,
@ApiParam(value = "listName") @Valid @RequestParam(value = "listName", required = false) String listName,
@ApiParam(value = "listDbId") @Valid @RequestParam(value = "listDbId", required = false) String listDbId,
Expand Down Expand Up @@ -67,6 +68,20 @@ ResponseEntity<ListsSingleResponse> listsListDbIdGet(
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization)
throws BrAPIServerException;

@ApiOperation(value = "Delete an existing generic list", nickname = "listsListDbIdDelete", notes = "Delete an existing generic list", response = ListsListResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "Lists", })
@ApiResponses(value = { @ApiResponse(code = 204, message = "OK", response = ListsSingleResponse.class),
@ApiResponse(code = 400, message = "Bad Request", response = String.class),
@ApiResponse(code = 401, message = "Unauthorized", response = String.class),
@ApiResponse(code = 403, message = "Forbidden", response = String.class),
@ApiResponse(code = 404, message = "Not Found", response = String.class) })
@RequestMapping(value = "/lists/{listDbId}", produces = { "application/json" }, method = RequestMethod.DELETE)
ResponseEntity<ListsSingleResponse> listsListDbIdDelete(
@ApiParam(value = "The unique ID of this generic list", required = true) @PathVariable("listDbId") String listDbId,
@ApiParam(value = "hardDelete") @Valid @RequestParam(value = "hardDelete", defaultValue = "false", required = false) boolean hardDelete,
@ApiParam(value = "HTTP HEADER - Token used for Authorization <strong> Bearer {token_string} </strong>") @RequestHeader(value = "Authorization", required = false) String authorization)
throws BrAPIServerException;

@ApiOperation(value = "Add Items to a specific List", nickname = "listsListDbIdItemsPost", notes = "Add new data to a specific generic lists", response = ListResponse.class, authorizations = {
@Authorization(value = "AuthorizationToken") }, tags = { "Lists", })
@ApiResponses(value = { @ApiResponse(code = 200, message = "OK", response = ListResponse.class),
Expand Down
Loading