package com.dbg.cloud.acheron.plugins.oauth2.endpoints;
import com.dbg.cloud.acheron.plugins.oauth2.authserver.base.management.client.Client;
import com.dbg.cloud.acheron.plugins.oauth2.store.OAuth2Client;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonView;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;
import java.util.Date;
import java.util.Set;
@Getter
@AllArgsConstructor
@ToString
@JsonIgnoreProperties(ignoreUnknown = true)
final class OAuth2ClientTO implements Client {
public OAuth2ClientTO(final OAuth2Client client) {
this(client, null);
}
public OAuth2ClientTO(final OAuth2Client client, final String clientSecret) {
this(client.getId() != null ? client.getId().toString() : null,
null,
client.getClientId(),
clientSecret,
client.getConsumerId() != null ? client.getConsumerId().toString() : null,
client.getConsumerName(),
client.getConsumerCreatedAt(),
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
client.getCreatedAt());
}
@JsonView(value = View.Read.class)
private final String id;
@JsonProperty("client_name")
private final String clientName;
@JsonView(value = View.Read.class)
@JsonProperty("client_id")
private final String clientId;
@JsonView(value = View.Read.class)
@JsonProperty("client_secret")
private final String clientSecret;
@JsonView(value = View.Read.class)
@JsonProperty("consumer_id")
private final String consumerId;
@JsonView(value = View.Read.class)
@JsonProperty("consumer_name")
private final String consumerName;
@JsonView(value = View.Read.class)
@JsonProperty("consumer_created_at")
private final Date consumerCreatedAt;
@JsonView(value = View.Register.class)
@JsonProperty("redirect_uris")
private final Set<String> redirectURIs;
@JsonView(value = View.Register.class)
@JsonProperty("grant_types")
private final Set<String> grantTypes;
@JsonView(value = View.Register.class)
@JsonProperty("response_types")
private final Set<String> responseTypes;
@JsonView(value = View.Register.class)
private final String scope;
@JsonView(value = View.Register.class)
private final String owner;
@JsonView(value = View.Register.class)
@JsonProperty("policy_uri")
private final String policyURI;
@JsonView(value = View.Register.class)
@JsonProperty("tos_uri")
private final String tosURI;
@JsonView(value = View.Register.class)
@JsonProperty("client_uri")
private final String clientURI;
@JsonView(value = View.Register.class)
@JsonProperty("logo_uri")
private final String logoURI;
@JsonView(value = View.Register.class)
@JsonProperty("contacts")
private final String contacts;
@JsonView(value = View.Register.class)
@JsonProperty("public")
private final Boolean isPublic;
@JsonView(value = View.Read.class)
@JsonProperty("created_at")
private final Date createdAt;
}