From c025e2238b026ba903f747b469b8868807b419a7 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Sat, 26 Aug 2023 13:22:05 +0200 Subject: [PATCH] Added first dtos --- .../api/keycloak/CredentialCreateDto.java | 26 +++++++++++ .../api/keycloak/CredentialTypeDto.java | 22 +++++++++ .../api/keycloak/UserAttributesCreateDto.java | 29 ++++++++++++ .../at/tuwien/api/keycloak/UserCreateDto.java | 46 +++++++++++++++++++ 4 files changed, 123 insertions(+) create mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialCreateDto.java create mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialTypeDto.java create mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserAttributesCreateDto.java create mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserCreateDto.java diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialCreateDto.java new file mode 100644 index 0000000000..40e23c1426 --- /dev/null +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialCreateDto.java @@ -0,0 +1,26 @@ +package at.tuwien.api.keycloak; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Jacksonized +@ToString +public class CredentialCreateDto { + + @NotNull + private CredentialTypeDto type; + + @Schema(example = "s3cr3t") + private String value; + + @Schema(example = "false") + private Boolean temporary; + +} diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialTypeDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialTypeDto.java new file mode 100644 index 0000000000..4992f74cf9 --- /dev/null +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/CredentialTypeDto.java @@ -0,0 +1,22 @@ +package at.tuwien.api.keycloak; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; + +@Getter +public enum CredentialTypeDto { + + @JsonProperty("password") + PASSWORD("password"); + + private String name; + + CredentialTypeDto(String name) { + this.name = name; + } + + @Override + public String toString() { + return this.name; + } +} diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserAttributesCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserAttributesCreateDto.java new file mode 100644 index 0000000000..dda6954940 --- /dev/null +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserAttributesCreateDto.java @@ -0,0 +1,29 @@ +package at.tuwien.api.keycloak; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Jacksonized +@ToString +public class UserAttributesCreateDto { + + @NotNull + @JsonProperty("theme_dark") + @Schema(example = "false") + private Boolean themeDark; + + @Schema(example = "https://orcid.org/0000-0002-1825-0097") + private String orcid; + + @Schema(example = "Brown University") + private String affiliation; + +} diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserCreateDto.java new file mode 100644 index 0000000000..4569d87d42 --- /dev/null +++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/keycloak/UserCreateDto.java @@ -0,0 +1,46 @@ +package at.tuwien.api.keycloak; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; + +import java.util.List; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Jacksonized +@ToString +public class UserCreateDto { + + @NotNull + @Schema(example = "jcarberry", description = "Only contains lowercase characters") + private String username; + + @NotNull + @Schema(example = "true") + private Boolean enabled; + + @JsonProperty("given_name") + @Schema(example = "Josiah") + private String firstname; + + @JsonProperty("family_name") + @Schema(example = "Carberry") + private String lastname; + + @NotNull + @Schema(example = "jcarberry@brown.edu") + private String email; + + @NotNull + private UserAttributesCreateDto attributes; + + @NotNull + private List<CredentialCreateDto> credentials; + +} -- GitLab