Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
21a2ee6
[ODM-10883] Fully reworked solution to openapi-generator
genestack-okunitsyn Dec 16, 2023
47e70d7
[ODM-10883] Remove deprecated base path
genestack-okunitsyn Dec 18, 2023
7d8cf25
[ODM-10883] Fix expression atomic endpoint
genestack-okunitsyn Dec 20, 2023
0ed8b71
[ODM-10883] Try to fix test with openapi update
genestack-okunitsyn Dec 22, 2023
0420794
[ODM-10883] Fix predefined headers in omics endpoints
genestack-okunitsyn Dec 22, 2023
a1470f9
[ODM-10883] Add to all linkage
genestack-okunitsyn Dec 22, 2023
af8d99f
[ODM-10883] Switch to openapi
genestack-okunitsyn Dec 22, 2023
94ed5ff
[ODM-10883] Make parameter nullable
genestack-okunitsyn Dec 22, 2023
57f4b26
[ODM-10883] Application.json to search endpoint
genestack-okunitsyn Dec 22, 2023
47f74a7
[ODM-10883] Set nullable with other approach
genestack-okunitsyn Dec 22, 2023
cdc84e0
[ODM-10883] Set nullable with other approach, doubled
genestack-okunitsyn Dec 22, 2023
157879b
[ODM-10883] Bump gradle plugin
genestack-okunitsyn Dec 22, 2023
1d22c1e
[ODM-10883] Remove nullable
genestack-okunitsyn Dec 22, 2023
a07870e
[ODM-10883] Add additional properties as a string
genestack-okunitsyn Dec 23, 2023
749b113
[ODM-10883] Add nullable
genestack-okunitsyn Dec 23, 2023
e6aa021
[ODM-10883] Make feature string or dict
genestack-okunitsyn Dec 23, 2023
8503d64
[ODM-10883] JsonMetadata attributes should be oneOf object/string
genestack-okunitsyn Dec 23, 2023
5060434
[ODM-10883] Test with 3.1.0 spec and null
genestack-okunitsyn Dec 23, 2023
540bed9
[ODM-10883] Make all specs 3.1.0
genestack-okunitsyn Dec 23, 2023
a7dfc40
[ODM-10883] Remove oneOf, make it same as default
genestack-okunitsyn Dec 23, 2023
315650f
[ODM-10883] Try to fix it in new way
genestack-okunitsyn Dec 23, 2023
5260c1a
[ODM-10883] Test remove properties from feature
genestack-okunitsyn Dec 24, 2023
63ca39c
[ODM-10883] Set anyOf clearly
genestack-okunitsyn Dec 24, 2023
548785d
[ODM-10883] Test add properties to object
genestack-okunitsyn Dec 24, 2023
b562def
[ODM-10883] Add min properties 1
genestack-okunitsyn Dec 24, 2023
d775b75
[ODM-10883] Comment null for value
genestack-okunitsyn Dec 24, 2023
1710ec0
[ODM-10883] Value directly as a number
genestack-okunitsyn Dec 24, 2023
2031111
[ODM-10883] Remove readOnly from object
genestack-okunitsyn Dec 24, 2023
83d609d
[ODM-10883] Put values in other way
genestack-okunitsyn Dec 24, 2023
53913b4
[ODM-10883] VariantItem to properties
genestack-okunitsyn Dec 25, 2023
9255be9
[ODM-10883] Remove read-only
genestack-okunitsyn Dec 25, 2023
feaed83
Test another way
genestack-okunitsyn Dec 25, 2023
53fc2e2
Remove items: string
genestack-okunitsyn Dec 25, 2023
2a24905
[ODM-10883] Fix variantItem
genestack-okunitsyn Dec 26, 2023
a9a6905
[ODM-10883] Remove readonly from Item entities
genestack-okunitsyn Dec 26, 2023
43a8752
[ODM-10883] Description readOnly
genestack-okunitsyn Dec 26, 2023
ae7e5a0
[ODM-10883] Add genotype to variantItem
genestack-okunitsyn Dec 26, 2023
5cf60d8
[ODM-10883] Remove items to make it parse properly in lib
genestack-okunitsyn Dec 26, 2023
676344c
[ODM-10883] Replace unused host to /
genestack-okunitsyn Dec 29, 2023
b5076ab
[ODM-10883] Remove server section
genestack-okunitsyn Dec 29, 2023
1845fbd
[ODM-10883] Remove swager annotation
genestack-okunitsyn Dec 29, 2023
6ec54c1
[ODM-10883] All requestBody as application/json
genestack-okunitsyn Jan 9, 2024
f44b2ee
[ODM-10883] Fix description for manageData
genestack-okunitsyn Jan 9, 2024
d7d5e5c
[ODM-10883] All content-types */* as application/json
genestack-okunitsyn Jan 9, 2024
70c2b96
[ODM-10883] Remove template from example
genestack-okunitsyn Jan 10, 2024
5d4ac22
Fix examples in jobs endpoint
genestack-okunitsyn Jan 10, 2024
b4ede15
[ODM-10883] Fix examples
genestack-okunitsyn Jan 10, 2024
6b5917e
[ODM-10883] Fix examples
genestack-okunitsyn Jan 10, 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
9 changes: 9 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#
# https://help.github.com/articles/dealing-with-line-endings/
#
# Linux start script should use lf
/gradlew text eol=lf

# These are Windows script files and should use crlf
*.bat text eol=crlf

6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@ target
.env-woq
.arg
.secret

# Ignore Gradle project-specific cache directory
.gradle

# Ignore Gradle build output directory
build
2 changes: 0 additions & 2 deletions .mvn/maven.config

This file was deleted.

Binary file removed .mvn/wrapper/maven-wrapper.jar
Binary file not shown.
18 changes: 0 additions & 18 deletions .mvn/wrapper/maven-wrapper.properties

This file was deleted.

31 changes: 9 additions & 22 deletions Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -20,39 +20,26 @@ ARG --global --required NEXUS_REPOSITORY_URL
deps:
ARG --required BASE_IMAGES_VERSION
FROM ${HARBOR_DOCKER_REGISTRY}/builder:${BASE_IMAGES_VERSION}
COPY requirements.R .
ARG APT_PACKAGES=build-essential \
pandoc texinfo texlive-latex-extra \
texlive-fonts-extra libz-dev libxml2-dev \
libcurl4-openssl-dev libssl-dev libssl-doc \
automake file libfribidi-dev libgfortran5 \
libfontconfig1-dev libgdal-dev libzmq3-dev \
libharfbuzz-dev libfreetype6-dev libpng-dev \
libtiff5-dev libjpeg-dev libxml2-dev \
libicu70 libgomp1 libreadline8
COPY requirements.R requirements.txt .
RUN \
apt update && apt install -y ${APT_PACKAGES} && \
Rscript requirements.R

COPY pom.xml requirements.txt .
COPY .mvn .mvn
COPY mvnw mvnw
RUN \
./mvnw de.qaware.maven:go-offline-maven-plugin:1.2.8:resolve-dependencies \
-Drevision=dummyValue && \
python3 -m pip install -r requirements.txt
Rscript requirements.R && \
python3 \
-m pip install \
-r requirements.txt

SAVE IMAGE --cache-hint

build:
FROM +deps

COPY --dir openapi scripts docs templates .
COPY --dir openapi scripts gradle gradlew build.gradle.kts settings.gradle.kts .
# R allows only numeric versions
# https://r-pkgs.org/lifecycle.html
ARG --required ODM_OPENAPI_VERSION
ENV ODM_OPENAPI_VERSION=${ODM_OPENAPI_VERSION}
RUN ./mvnw package
RUN ./gradlew \
--no-daemon \
generateAllApiClients

SAVE IMAGE --cache-hint
SAVE ARTIFACT generated
Expand Down
64 changes: 64 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
import kotlin.io.path.listDirectoryEntries
import kotlin.io.path.name
import kotlin.io.path.Path as KotlinPath

plugins {
alias(libs.plugins.openapi.generator) apply true
}

val openApiVersion: String = System.getenv("ODM_OPENAPI_VERSION")
val openApiSpecPath = "$rootDir/openapi/default"
val fileNameList = KotlinPath(openApiSpecPath).listDirectoryEntries("*.yaml")
val tasksList = fileNameList
.map { it.name.replace(".yaml", "") }

fun String.camelToKebabCase(): String {
val pattern = "(?<=.)[A-Z]".toRegex()
return this.replace(pattern, "-$0").lowercase()
}

fun String.camelToSnakeCase(): String {
val pattern = "(?<=.)[A-Z]".toRegex()
return this.replace(pattern, "_$0").lowercase()
}

fun String.kebabToCamelCase(): String {
val pattern = "(-)([a-z])".toRegex()
return this.replace(pattern) { it.groupValues[2].uppercase() }
}


tasks {
for (task in tasksList) {
register(task + "Python", GenerateTask::class) {
generatorName.set("python")
inputSpec.set("$rootDir/openapi/default/$task.yaml")
outputDir.set("$rootDir/generated/python/${task.camelToKebabCase()}")
packageName.set(task.camelToSnakeCase())
gitUserId.set("genestack")
gitRepoId.set("odm-openapi")
configOptions = mapOf(
"packageVersion" to openApiVersion
)
skipValidateSpec = true
}
register(task + "R", GenerateTask::class) {
generatorName.set("r")
inputSpec.set("$rootDir/openapi/default/$task.yaml")
outputDir.set("$rootDir/generated/r/${task.kebabToCamelCase()}")
packageName.set(task.kebabToCamelCase())
gitUserId.set("genestack")
gitRepoId.set("odm-openapi")
configOptions = mapOf(
"packageVersion" to openApiVersion
)
skipValidateSpec = true
}

}

val generateAllApiClients by registering(GradleBuild::class) {
tasks = tasksList.flatMap { listOf(it + "Python", it + "R") }
}
}
35 changes: 0 additions & 35 deletions docs/python/README.md

This file was deleted.

29 changes: 0 additions & 29 deletions docs/python/generate_documentation.sh

This file was deleted.

Binary file removed docs/python/source/_static/favicon.ico
Binary file not shown.
11 changes: 0 additions & 11 deletions docs/python/source/_static/genestack.css

This file was deleted.

87 changes: 0 additions & 87 deletions docs/python/source/_static/logo.svg

This file was deleted.

3 changes: 0 additions & 3 deletions docs/python/source/_templates/page.html

This file was deleted.

Loading