Compare commits
19 Commits
d404e84a4f
...
abb35e94c0
Author | SHA1 | Date | |
---|---|---|---|
abb35e94c0 | |||
|
48e8f38ba8 | ||
|
e8e4808586 | ||
|
9b77876fa5 | ||
|
fc0290c76f | ||
|
c81b8892d8 | ||
|
77340b6c4f | ||
|
08cef32268 | ||
|
16746066b7 | ||
|
cc19498098 | ||
|
a75413b232 | ||
|
e601cb684b | ||
|
9f81701eda | ||
|
1485176f6b | ||
|
f203b319eb | ||
|
b4a183aaa2 | ||
|
60721f593c | ||
|
c2fb8adac0 | ||
|
a2e7980eec |
4
.gitignore
vendored
4
.gitignore
vendored
@ -36,4 +36,6 @@ out/
|
|||||||
### VS Code ###
|
### VS Code ###
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
uploads/
|
@ -9,9 +9,9 @@
|
|||||||
|
|
||||||
### Language and Framework
|
### Language and Framework
|
||||||
|
|
||||||
- Spring Boot: 2.7.4
|
- Spring Boot: 3.0.0
|
||||||
- Kotlin: 1.7.20
|
- Kotlin: 1.7.22
|
||||||
- Gradle: 7.5
|
- Gradle: 7.5.1
|
||||||
|
|
||||||
# Modules
|
# Modules
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@ plugins {
|
|||||||
kotlin("plugin.jpa")
|
kotlin("plugin.jpa")
|
||||||
}
|
}
|
||||||
|
|
||||||
val kotlinVersion = "1.7.20"
|
val kotlinVersion = "1.7.22"
|
||||||
val springBootVersion = "2.7.4"
|
val springBootVersion = "3.0.0"
|
||||||
|
|
||||||
// find the last commit
|
// find the last commit
|
||||||
fun getGitHashLastCommit(): String {
|
fun getGitHashLastCommit(): String {
|
||||||
@ -25,9 +25,9 @@ fun getGitHashLastCommit(): String {
|
|||||||
springBoot {
|
springBoot {
|
||||||
buildInfo {
|
buildInfo {
|
||||||
properties {
|
properties {
|
||||||
additional["commitId"] = getGitHashLastCommit()
|
this.additional.put("commitId", getGitHashLastCommit())
|
||||||
additional["springBootVersion"] = springBootVersion
|
this.additional.put("springBootVersion", springBootVersion)
|
||||||
additional["kotlinVersion"] = kotlinVersion
|
this.additional.put("kotlinVersion", kotlinVersion)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -36,9 +36,10 @@ dependencies {
|
|||||||
// Spring Data JPA (Required for Database Layer)
|
// Spring Data JPA (Required for Database Layer)
|
||||||
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
|
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
|
||||||
implementation("org.springframework.boot:spring-boot-starter-data-redis")
|
implementation("org.springframework.boot:spring-boot-starter-data-redis")
|
||||||
|
implementation("org.springframework.boot:spring-boot-starter-validation")
|
||||||
|
|
||||||
// Migrating from SpringFox
|
// Migrating from SpringDoc API (Swagger) for Support Spring Boot 3.x
|
||||||
implementation("org.springdoc:springdoc-openapi-ui:1.6.11")
|
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.0")
|
||||||
|
|
||||||
// SPRING FRAMEWORK AND CORE
|
// SPRING FRAMEWORK AND CORE
|
||||||
implementation("org.springframework.boot:spring-boot-starter-web")
|
implementation("org.springframework.boot:spring-boot-starter-web")
|
||||||
|
@ -6,12 +6,12 @@ import io.swagger.v3.oas.annotations.security.SecurityScheme
|
|||||||
import io.swagger.v3.oas.models.OpenAPI
|
import io.swagger.v3.oas.models.OpenAPI
|
||||||
import io.swagger.v3.oas.models.info.Info
|
import io.swagger.v3.oas.models.info.Info
|
||||||
import io.swagger.v3.oas.models.info.License
|
import io.swagger.v3.oas.models.info.License
|
||||||
import org.springdoc.core.GroupedOpenApi
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired
|
import org.springframework.beans.factory.annotation.Autowired
|
||||||
import org.springframework.context.annotation.Bean
|
import org.springframework.context.annotation.Bean
|
||||||
import org.springframework.context.annotation.Configuration
|
import org.springframework.context.annotation.Configuration
|
||||||
import io.swagger.v3.oas.annotations.OpenAPIDefinition
|
import io.swagger.v3.oas.annotations.OpenAPIDefinition
|
||||||
import io.swagger.v3.oas.annotations.servers.Server
|
import io.swagger.v3.oas.annotations.servers.Server
|
||||||
|
import org.springdoc.core.models.GroupedOpenApi
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
|
||||||
|
|
||||||
//import org.springdoc.core.SpringDocUtils
|
//import org.springdoc.core.SpringDocUtils
|
||||||
|
@ -10,6 +10,6 @@ import org.springframework.web.servlet.view.RedirectView
|
|||||||
class ApiDoc {
|
class ApiDoc {
|
||||||
@GetMapping(value = [ "/api-doc", "/api-docs"])
|
@GetMapping(value = [ "/api-doc", "/api-docs"])
|
||||||
fun redirect(): RedirectView {
|
fun redirect(): RedirectView {
|
||||||
return RedirectView("/swagger-ui/")
|
return RedirectView("/swagger-ui/index.html")
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -14,7 +14,7 @@ import org.springframework.util.FileCopyUtils
|
|||||||
import org.springframework.web.bind.annotation.*
|
import org.springframework.web.bind.annotation.*
|
||||||
import org.springframework.web.multipart.MultipartFile
|
import org.springframework.web.multipart.MultipartFile
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.servlet.http.HttpServletResponse
|
import jakarta.servlet.http.HttpServletResponse
|
||||||
|
|
||||||
@UploaderModule
|
@UploaderModule
|
||||||
@Tag(name = "Uploader Controller")
|
@Tag(name = "Uploader Controller")
|
||||||
|
@ -12,40 +12,47 @@ import java.io.InputStream
|
|||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.persistence.*
|
import jakarta.persistence.*
|
||||||
|
import org.hibernate.annotations.GenericGenerator
|
||||||
|
|
||||||
@UploaderModule
|
@UploaderModule
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "uploader")
|
@Table(name = "`uploader`")
|
||||||
@EntityListeners(AuditingEntityListener::class)
|
@EntityListeners(AuditingEntityListener::class)
|
||||||
open class UploaderEntity(
|
open class UploaderEntity(
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
@GeneratedValue(generator = "custom-uuid")
|
||||||
|
@GenericGenerator(
|
||||||
|
name = "custom-uuid",
|
||||||
|
strategy = "org.hibernate.id.UUIDGenerator",
|
||||||
|
parameters = [org.hibernate.annotations.Parameter(name = "uuid_gen_strategy_class", value = "org.hibernate.id.uuid.CustomVersionOneStrategy")]
|
||||||
|
)
|
||||||
|
@Column(columnDefinition = "BINARY(16)")
|
||||||
open var id: UUID? = null,
|
open var id: UUID? = null,
|
||||||
|
|
||||||
@Column(name = "filename")
|
@Column(name = "`filename`")
|
||||||
open var filename: String? = null,
|
open var filename: String? = null,
|
||||||
|
|
||||||
@Column(name = "content_type")
|
@Column(name = "`content_type`")
|
||||||
open var contentType: String? = null,
|
open var contentType: String? = null,
|
||||||
|
|
||||||
@Column(name = "content_length")
|
@Column(name = "`content_length`")
|
||||||
open var contentLength: Long? = null,
|
open var contentLength: Long? = null,
|
||||||
|
|
||||||
@Column(name = "path", length = 300)
|
@Column(name = "`path`", length = 300)
|
||||||
open var path: String? = null,
|
open var path: String? = null,
|
||||||
|
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
@Temporal(TemporalType.TIMESTAMP)
|
||||||
@Column(name = "created_at")
|
@Column(name = "`created_at`")
|
||||||
@CreatedDate
|
@CreatedDate
|
||||||
open var createdAt: Date? = null,
|
open var createdAt: Date? = null,
|
||||||
|
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
@Temporal(TemporalType.TIMESTAMP)
|
||||||
@Column(name = "updated_at")
|
@Column(name = "`updated_at`")
|
||||||
@LastModifiedDate
|
@LastModifiedDate
|
||||||
open var updatedAt: Date? = null,
|
open var updatedAt: Date? = null,
|
||||||
|
|
||||||
@Column(length = 30)
|
@Column(length = 30, name = "`provider_type`")
|
||||||
open var providerType: String? = null,
|
open var providerType: String? = null,
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
@Transient
|
@Transient
|
||||||
|
@ -3,20 +3,27 @@ package com.cubetiqs.web.modules.user
|
|||||||
import org.hibernate.Hibernate
|
import org.hibernate.Hibernate
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.persistence.*
|
import jakarta.persistence.*
|
||||||
|
import org.hibernate.annotations.GenericGenerator
|
||||||
|
|
||||||
@UserModule
|
@UserModule
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "user")
|
@Table(name = "`user`")
|
||||||
open class UserEntity(
|
open class UserEntity(
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
@GeneratedValue(generator = "custom-uuid")
|
||||||
|
@GenericGenerator(
|
||||||
|
name = "custom-uuid",
|
||||||
|
strategy = "org.hibernate.id.UUIDGenerator",
|
||||||
|
parameters = [org.hibernate.annotations.Parameter(name = "uuid_gen_strategy_class", value = "org.hibernate.id.uuid.CustomVersionOneStrategy")]
|
||||||
|
)
|
||||||
|
@Column(columnDefinition = "BINARY(16)")
|
||||||
open var id: UUID? = null,
|
open var id: UUID? = null,
|
||||||
|
|
||||||
@Column(name = "name", length = 50)
|
@Column(name = "`name`", length = 50)
|
||||||
open var name: String? = null,
|
open var name: String? = null,
|
||||||
|
|
||||||
@Column(name = "username", length = 50, unique = true)
|
@Column(name = "`username`", length = 50, unique = true)
|
||||||
open var username: String? = null,
|
open var username: String? = null,
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
|
@ -27,8 +27,9 @@ spring:
|
|||||||
password: ${DATASOURCE_PASSWORD:password}
|
password: ${DATASOURCE_PASSWORD:password}
|
||||||
jpa:
|
jpa:
|
||||||
hibernate:
|
hibernate:
|
||||||
ddl-auto: ${JPA_HIBERNATE_DDL_AUTO:update}
|
ddl-auto: ${JPA_HIBERNATE_DDL_AUTO:create-drop}
|
||||||
open-in-view: ${JPA_OPEN_IN_VIEW:false}
|
open-in-view: ${JPA_OPEN_IN_VIEW:false}
|
||||||
|
database-platform: ${JPA_DATABASE_PLATFORM:org.hibernate.dialect.H2Dialect}
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
repositories:
|
repositories:
|
||||||
@ -55,5 +56,3 @@ logging:
|
|||||||
springdoc:
|
springdoc:
|
||||||
api-docs:
|
api-docs:
|
||||||
enabled: ${API_DOCS_ENABLED:true}
|
enabled: ${API_DOCS_ENABLED:true}
|
||||||
swagger-ui:
|
|
||||||
path: /swagger-ui
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("org.springframework.boot") version "2.7.4" apply false
|
id("org.springframework.boot") version "3.0.0" apply false
|
||||||
id("io.spring.dependency-management") version "1.0.14.RELEASE" apply false
|
id("io.spring.dependency-management") version "1.1.0" apply false
|
||||||
kotlin("jvm") version "1.7.20" apply false
|
kotlin("jvm") version "1.7.22" apply false
|
||||||
kotlin("plugin.spring") version "1.7.20" apply false
|
kotlin("plugin.spring") version "1.7.22" apply false
|
||||||
kotlin("plugin.jpa") version "1.7.20" apply false
|
kotlin("plugin.jpa") version "1.7.22" apply false
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
Loading…
Reference in New Issue
Block a user