added global header support for client
parent
03301b856c
commit
0f3ac20614
|
@ -0,0 +1,40 @@
|
|||
/**
|
||||
* Auto-generated from apibuilder.io service specification.
|
||||
* apidoc-version :
|
||||
* organisation :
|
||||
* service-version :
|
||||
*
|
||||
* Documentation at:
|
||||
* <a href="https://app.apibuilder.io///">https://app.apibuilder.io///</a>
|
||||
*
|
||||
**/
|
||||
package de.nclazz.registry.v0.client;
|
||||
|
||||
import lombok.*;
|
||||
import org.glassfish.jersey.client.HttpUrlConnectorProvider;
|
||||
|
||||
import javax.ws.rs.client.Client;
|
||||
import javax.ws.rs.client.ClientBuilder;
|
||||
import javax.ws.rs.client.ClientRequestFilter;
|
||||
import javax.ws.rs.client.ClientRequestContext;
|
||||
import java.io.IOException;
|
||||
|
||||
@Builder(toBuilder = true)
|
||||
@With
|
||||
@Getter
|
||||
@EqualsAndHashCode
|
||||
public class RegistryEventsApiClientConfig implements ClientRequestFilter {
|
||||
|
||||
@NonNull
|
||||
private final String baseUrl;
|
||||
@Builder.Default
|
||||
private final Client client = ClientBuilder.newClient()
|
||||
.register(this)
|
||||
.property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true);
|
||||
|
||||
|
||||
@Override
|
||||
public void filter(ClientRequestContext requestContext) throws IOException {
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* Auto-generated from apibuilder.io service spec.
|
||||
* apidoc-version :
|
||||
* organisation :
|
||||
* service-version :
|
||||
*
|
||||
* Documentation at:
|
||||
* <a href="https://app.apibuilder.io///">https://app.apibuilder.io///</a>
|
||||
*
|
||||
**/
|
||||
package de.nclazz.registry.v0.client;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import de.nclazz.registry.v0.client.*;
|
||||
|
||||
/**
|
||||
* Client Lib for de.nclazz.registry.v0.registry_events API service spec.
|
||||
*
|
||||
* Registry Event Schema for Kafka Streams.
|
||||
**/
|
||||
public class RegistryEventsServiceClient {
|
||||
|
||||
private final RegistryEventsApiClientConfig config;
|
||||
|
||||
public RegistryEventsServiceClient(@NonNull final RegistryEventsApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -8,22 +8,38 @@
|
|||
* <a href="https://app.apibuilder.io///">https://app.apibuilder.io///</a>
|
||||
*
|
||||
**/
|
||||
package de.nclazz.users.v0;
|
||||
package de.nclazz.users.v0.client;
|
||||
|
||||
import lombok.*;
|
||||
import org.glassfish.jersey.client.HttpUrlConnectorProvider;
|
||||
|
||||
import javax.ws.rs.client.Client;
|
||||
import javax.ws.rs.client.ClientBuilder;
|
||||
import javax.ws.rs.client.ClientRequestFilter;
|
||||
import javax.ws.rs.client.ClientRequestContext;
|
||||
import java.io.IOException;
|
||||
|
||||
@Builder(toBuilder = true)
|
||||
@With
|
||||
@Getter
|
||||
@EqualsAndHashCode
|
||||
public class UsersApiClientConfig {
|
||||
public class UsersApiClientConfig implements ClientRequestFilter {
|
||||
|
||||
@NonNull
|
||||
private final String baseUrl;
|
||||
@Builder.Default
|
||||
private final Client client = ClientBuilder.newClient();
|
||||
private final Client client = ClientBuilder.newClient()
|
||||
.register(this)
|
||||
.property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true);
|
||||
|
||||
/** Service for user management and authentication.
|
||||
**/
|
||||
@NonNull
|
||||
private String xSomething;
|
||||
|
||||
@Override
|
||||
public void filter(ClientRequestContext requestContext) throws IOException {
|
||||
requestContext.getHeaders().add("x-something", this.xSomething);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
/**
|
||||
* Auto-generated from apibuilder.io service spec.
|
||||
* apidoc-version :
|
||||
* organisation :
|
||||
* service-version :
|
||||
*
|
||||
* Documentation at:
|
||||
* <a href="https://app.apibuilder.io///">https://app.apibuilder.io///</a>
|
||||
*
|
||||
**/
|
||||
package de.nclazz.users.v0.client;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import de.nclazz.users.v0.client.*;
|
||||
|
||||
/**
|
||||
* Client Lib for de.nclazz.users.v0.users API service spec.
|
||||
*
|
||||
* Service for user management and authentication.
|
||||
**/
|
||||
public class UsersServiceClient {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public UsersServiceClient(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public HealthchecksResource healthchecks() {
|
||||
return new HealthchecksResource(this.config);
|
||||
}
|
||||
public RolesResource roles() {
|
||||
return new RolesResource(this.config);
|
||||
}
|
||||
public UsersResource users() {
|
||||
return new UsersResource(this.config);
|
||||
}
|
||||
public UserLoginsResource userLogins() {
|
||||
return new UserLoginsResource(this.config);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
/**
|
||||
* Auto-generated from apibuilder.io service spec.
|
||||
* apidoc-version : 0.15.4
|
||||
* organisation : nclazz
|
||||
* service-version : 0.0.0-dev-30-gbd50cdf-bd9390b2-staging
|
||||
*
|
||||
* Documentation at:
|
||||
* <a href="https://app.apibuilder.io/nclazz/users/0.0.0-dev-30-gbd50cdf-bd9390b2-staging">https://app.apibuilder.io/nclazz/users/0.0.0-dev-30-gbd50cdf-bd9390b2-staging</a>
|
||||
*
|
||||
**/
|
||||
package de.nclazz.users.v0.client;
|
||||
|
||||
import de.nclazz.users.v0.client.UsersApiClientConfig;
|
||||
import de.nclazz.users.v0.models.*;
|
||||
|
||||
import de.nclazz.common.v0.models.Healthcheck;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import javax.ws.rs.client.Entity;
|
||||
import javax.ws.rs.client.WebTarget;
|
||||
import javax.ws.rs.core.*;
|
||||
import java.net.URI;
|
||||
|
||||
|
||||
/**
|
||||
* Client for API resource de.nclazz.users.v0.HealthchecksResource
|
||||
* version 0.0.0-dev-30-gbd50cdf-bd9390b2-staging
|
||||
*
|
||||
* Simple healthcheck resource for monitoring purposes.
|
||||
**/
|
||||
@RequiredArgsConstructor
|
||||
public class HealthchecksResource {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
/** Simple healthcheck endpoint to test the status of the service. **/
|
||||
public Get get () {
|
||||
return new Get(this.config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple healthcheck endpoint to test the status of the service.
|
||||
**/
|
||||
public static class Get {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public Get(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public GetResponse request() {
|
||||
// /_internal_/healthcheck/healthcheck
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("_internal_")
|
||||
.path("healthcheck")
|
||||
.path("healthcheck")
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("GET");
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
|
||||
Healthcheck healthcheck200Resp = response.readEntity(Healthcheck.class);
|
||||
return GetResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.healthcheck200(healthcheck200Resp)
|
||||
.build();
|
||||
default:
|
||||
return GetResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class GetResponse {
|
||||
private Healthcheck healthcheck200;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,375 @@
|
|||
/**
|
||||
* Auto-generated from apibuilder.io service spec.
|
||||
* apidoc-version : 0.15.4
|
||||
* organisation : nclazz
|
||||
* service-version : 0.0.0-dev-30-gbd50cdf-bd9390b2-staging
|
||||
*
|
||||
* Documentation at:
|
||||
* <a href="https://app.apibuilder.io/nclazz/users/0.0.0-dev-30-gbd50cdf-bd9390b2-staging">https://app.apibuilder.io/nclazz/users/0.0.0-dev-30-gbd50cdf-bd9390b2-staging</a>
|
||||
*
|
||||
**/
|
||||
package de.nclazz.users.v0.client;
|
||||
|
||||
import de.nclazz.users.v0.client.UsersApiClientConfig;
|
||||
import de.nclazz.users.v0.models.*;
|
||||
|
||||
import java.util.UUID;
|
||||
import de.nclazz.users.v0.models.RoleForm;
|
||||
import de.nclazz.users.v0.models.UserStatusForm;
|
||||
import de.nclazz.users.v0.models.Role;
|
||||
import java.util.List;
|
||||
import de.nclazz.users.v0.models.User;
|
||||
import de.nclazz.errors.v0.models.GenericError;
|
||||
import de.nclazz.users.v0.models.UserStatus;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import javax.ws.rs.client.Entity;
|
||||
import javax.ws.rs.client.WebTarget;
|
||||
import javax.ws.rs.core.*;
|
||||
import java.net.URI;
|
||||
|
||||
|
||||
/**
|
||||
* Client for API resource de.nclazz.users.v0.RolesResource
|
||||
* version 0.0.0-dev-30-gbd50cdf-bd9390b2-staging
|
||||
*
|
||||
* Managing user roles.
|
||||
**/
|
||||
@RequiredArgsConstructor
|
||||
public class RolesResource {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
/** Get all defined user roles. **/
|
||||
public Get get () {
|
||||
return new Get(this.config);
|
||||
}
|
||||
/** Get a user role for id. **/
|
||||
public GetByIdAndOther getByIdAndOther () {
|
||||
return new GetByIdAndOther(this.config);
|
||||
}
|
||||
/** Create a new user role. **/
|
||||
public PostRoleForm postRoleForm () {
|
||||
return new PostRoleForm(this.config);
|
||||
}
|
||||
/** Update the status of a user role. **/
|
||||
public PutUserStatusFormById putUserStatusFormById () {
|
||||
return new PutUserStatusFormById(this.config);
|
||||
}
|
||||
/** Mark a user role as deleted. The user role cannot be accessed by the api, but will stay in the db for a while, before completely removed. **/
|
||||
public DeleteById deleteById () {
|
||||
return new DeleteById(this.config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all defined user roles.
|
||||
**/
|
||||
public static class Get {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public Get(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public GetResponse request() {
|
||||
// /roles/
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("roles")
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("GET");
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
List<Role> role200Resp = response.readEntity(new GenericType<List<Role>>() {});
|
||||
|
||||
return GetResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.role200(role200Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return GetResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return GetResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class GetResponse {
|
||||
private List<Role> role200;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a user role for id.
|
||||
**/
|
||||
public static class GetByIdAndOther {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public GetByIdAndOther(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public GetByIdAndOtherResponse request(@NonNull UUID id, @NonNull String other) {
|
||||
// /roles/:id/:other
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("roles")
|
||||
.path(id.toString())
|
||||
.path(other.toString())
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("GET");
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
|
||||
Role role200Resp = response.readEntity(Role.class);
|
||||
return GetByIdAndOtherResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.role200(role200Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return GetByIdAndOtherResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 404:
|
||||
return GetByIdAndOtherResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return GetByIdAndOtherResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class GetByIdAndOtherResponse {
|
||||
private Role role200;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user role.
|
||||
**/
|
||||
public static class PostRoleForm {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public PostRoleForm(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public PostRoleFormResponse request(@NonNull RoleForm roleForm) {
|
||||
// /roles/
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("roles")
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("POST", Entity.json(roleForm));
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 201:
|
||||
|
||||
User user201Resp = response.readEntity(User.class);
|
||||
return PostRoleFormResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.user201(user201Resp)
|
||||
.build();
|
||||
case 400:
|
||||
List<GenericError> genericError400Resp = response.readEntity(new GenericType<List<GenericError>>() {});
|
||||
|
||||
return PostRoleFormResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.genericError400(genericError400Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return PostRoleFormResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return PostRoleFormResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class PostRoleFormResponse {
|
||||
private User user201;
|
||||
private List<GenericError> genericError400;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the status of a user role.
|
||||
**/
|
||||
public static class PutUserStatusFormById {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public PutUserStatusFormById(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public PutUserStatusFormByIdResponse request(@NonNull UUID id, @NonNull UserStatusForm userStatusForm) {
|
||||
// /roles/:id/status
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("roles")
|
||||
.path(id.toString())
|
||||
.path("status")
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("PUT", Entity.json(userStatusForm));
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
|
||||
UserStatus userStatus200Resp = response.readEntity(UserStatus.class);
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.userStatus200(userStatus200Resp)
|
||||
.build();
|
||||
case 400:
|
||||
List<GenericError> genericError400Resp = response.readEntity(new GenericType<List<GenericError>>() {});
|
||||
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.genericError400(genericError400Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 404:
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class PutUserStatusFormByIdResponse {
|
||||
private UserStatus userStatus200;
|
||||
private List<GenericError> genericError400;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark a user role as deleted. The user role cannot be accessed by the api, but will stay in the db for a while, before completely removed.
|
||||
**/
|
||||
public static class DeleteById {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public DeleteById(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public DeleteByIdResponse request(@NonNull UUID id) {
|
||||
// /roles/:id
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("roles")
|
||||
.path(id.toString())
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("DELETE");
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
return DeleteByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 401:
|
||||
return DeleteByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 404:
|
||||
return DeleteByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return DeleteByIdResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class DeleteByIdResponse {
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
/**
|
||||
* Auto-generated from apibuilder.io service spec.
|
||||
* apidoc-version : 0.15.4
|
||||
* organisation : nclazz
|
||||
* service-version : 0.0.0-dev-30-gbd50cdf-bd9390b2-staging
|
||||
*
|
||||
* Documentation at:
|
||||
* <a href="https://app.apibuilder.io/nclazz/users/0.0.0-dev-30-gbd50cdf-bd9390b2-staging">https://app.apibuilder.io/nclazz/users/0.0.0-dev-30-gbd50cdf-bd9390b2-staging</a>
|
||||
*
|
||||
**/
|
||||
package de.nclazz.users.v0.client;
|
||||
|
||||
import de.nclazz.users.v0.client.UsersApiClientConfig;
|
||||
import de.nclazz.users.v0.models.*;
|
||||
|
||||
import de.nclazz.users.v0.models.UserLoginForm;
|
||||
import de.nclazz.users.v0.models.UserLogin;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import javax.ws.rs.client.Entity;
|
||||
import javax.ws.rs.client.WebTarget;
|
||||
import javax.ws.rs.core.*;
|
||||
import java.net.URI;
|
||||
|
||||
|
||||
/**
|
||||
* Client for API resource de.nclazz.users.v0.UserLoginsResource
|
||||
* version 0.0.0-dev-30-gbd50cdf-bd9390b2-staging
|
||||
*
|
||||
* Resource for authenticating users.
|
||||
**/
|
||||
@RequiredArgsConstructor
|
||||
public class UserLoginsResource {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
/** Login user with username + password. **/
|
||||
public PostUserLoginForm postUserLoginForm () {
|
||||
return new PostUserLoginForm(this.config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Login user with username + password.
|
||||
**/
|
||||
public static class PostUserLoginForm {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public PostUserLoginForm(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public PostUserLoginFormResponse request(@NonNull UserLoginForm userLoginForm) {
|
||||
// /login/
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("login")
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("POST", Entity.json(userLoginForm));
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
|
||||
UserLogin userLogin200Resp = response.readEntity(UserLogin.class);
|
||||
return PostUserLoginFormResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.userLogin200(userLogin200Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return PostUserLoginFormResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return PostUserLoginFormResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class PostUserLoginFormResponse {
|
||||
private UserLogin userLogin200;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,464 @@
|
|||
/**
|
||||
* Auto-generated from apibuilder.io service spec.
|
||||
* apidoc-version : 0.15.4
|
||||
* organisation : nclazz
|
||||
* service-version : 0.0.0-dev-30-gbd50cdf-bd9390b2-staging
|
||||
*
|
||||
* Documentation at:
|
||||
* <a href="https://app.apibuilder.io/nclazz/users/0.0.0-dev-30-gbd50cdf-bd9390b2-staging">https://app.apibuilder.io/nclazz/users/0.0.0-dev-30-gbd50cdf-bd9390b2-staging</a>
|
||||
*
|
||||
**/
|
||||
package de.nclazz.users.v0.client;
|
||||
|
||||
import de.nclazz.users.v0.client.UsersApiClientConfig;
|
||||
import de.nclazz.users.v0.models.*;
|
||||
|
||||
import de.nclazz.users.v0.models.UserForm;
|
||||
import de.nclazz.users.v0.models.UserStatusForm;
|
||||
import de.nclazz.users.v0.models.User;
|
||||
import java.util.List;
|
||||
import de.nclazz.errors.v0.models.GenericError;
|
||||
import de.nclazz.users.v0.models.UserStatus;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import javax.ws.rs.client.Entity;
|
||||
import javax.ws.rs.client.WebTarget;
|
||||
import javax.ws.rs.core.*;
|
||||
import java.net.URI;
|
||||
|
||||
|
||||
/**
|
||||
* Client for API resource de.nclazz.users.v0.UsersResource
|
||||
* version 0.0.0-dev-30-gbd50cdf-bd9390b2-staging
|
||||
*
|
||||
* Access to the user management.
|
||||
**/
|
||||
@RequiredArgsConstructor
|
||||
public class UsersResource {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
/** Get all users. **/
|
||||
public Get get () {
|
||||
return new Get(this.config);
|
||||
}
|
||||
/** Get a user for given id. **/
|
||||
public GetById getById () {
|
||||
return new GetById(this.config);
|
||||
}
|
||||
/** Create a new user. **/
|
||||
public PostUserForm postUserForm () {
|
||||
return new PostUserForm(this.config);
|
||||
}
|
||||
/** Update user data. **/
|
||||
public PutUserFormById putUserFormById () {
|
||||
return new PutUserFormById(this.config);
|
||||
}
|
||||
/** Update the status of the user. **/
|
||||
public PutUserStatusFormById putUserStatusFormById () {
|
||||
return new PutUserStatusFormById(this.config);
|
||||
}
|
||||
/** Mark a user as deleted. The user cannot be accessed by the api, but will stay in the db for a while, before completely removed. **/
|
||||
public DeleteById deleteById () {
|
||||
return new DeleteById(this.config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all users.
|
||||
**/
|
||||
public static class Get {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
@NonNull private String xAuthorization_header ;
|
||||
private String xAgent_header ;
|
||||
@Builder.Default private Integer limit_query = 200;
|
||||
|
||||
public Get(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public GetResponse request() {
|
||||
// /users/
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("users")
|
||||
.queryParam("limit", this.limit_query)
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.header("x-authorization", this.xAuthorization_header)
|
||||
.header("x-agent", this.xAgent_header)
|
||||
.method("GET");
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
List<User> user200Resp = response.readEntity(new GenericType<List<User>>() {});
|
||||
|
||||
return GetResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.user200(user200Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return GetResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return GetResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
public Get xAuthorization(String xAuthorization) {
|
||||
this.xAuthorization_header = xAuthorization;
|
||||
return this;
|
||||
}
|
||||
public Get xAgent(String xAgent) {
|
||||
this.xAgent_header = xAgent;
|
||||
return this;
|
||||
}
|
||||
public Get limit(Integer limit) {
|
||||
this.limit_query = limit;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class GetResponse {
|
||||
private List<User> user200;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a user for given id.
|
||||
**/
|
||||
public static class GetById {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public GetById(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public GetByIdResponse request(@NonNull String id) {
|
||||
// /users/:id
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("users")
|
||||
.path(id.toString())
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("GET");
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
|
||||
User user200Resp = response.readEntity(User.class);
|
||||
return GetByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.user200(user200Resp)
|
||||
.build();
|
||||
case 404:
|
||||
return GetByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 401:
|
||||
return GetByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return GetByIdResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class GetByIdResponse {
|
||||
private User user200;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user.
|
||||
**/
|
||||
public static class PostUserForm {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public PostUserForm(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public PostUserFormResponse request(@NonNull UserForm userForm) {
|
||||
// /users/
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("users")
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("POST", Entity.json(userForm));
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 201:
|
||||
|
||||
User user201Resp = response.readEntity(User.class);
|
||||
return PostUserFormResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.user201(user201Resp)
|
||||
.build();
|
||||
case 400:
|
||||
List<GenericError> genericError400Resp = response.readEntity(new GenericType<List<GenericError>>() {});
|
||||
|
||||
return PostUserFormResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.genericError400(genericError400Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return PostUserFormResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return PostUserFormResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class PostUserFormResponse {
|
||||
private User user201;
|
||||
private List<GenericError> genericError400;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update user data.
|
||||
**/
|
||||
public static class PutUserFormById {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public PutUserFormById(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public PutUserFormByIdResponse request(@NonNull String id, @NonNull UserForm userForm) {
|
||||
// /users/:id
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("users")
|
||||
.path(id.toString())
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("PUT", Entity.json(userForm));
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
|
||||
User user200Resp = response.readEntity(User.class);
|
||||
return PutUserFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.user200(user200Resp)
|
||||
.build();
|
||||
case 400:
|
||||
List<GenericError> genericError400Resp = response.readEntity(new GenericType<List<GenericError>>() {});
|
||||
|
||||
return PutUserFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.genericError400(genericError400Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return PutUserFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 404:
|
||||
return PutUserFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return PutUserFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class PutUserFormByIdResponse {
|
||||
private User user200;
|
||||
private List<GenericError> genericError400;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the status of the user.
|
||||
**/
|
||||
public static class PutUserStatusFormById {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public PutUserStatusFormById(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public PutUserStatusFormByIdResponse request(@NonNull String id, @NonNull UserStatusForm userStatusForm) {
|
||||
// /users/:id/status
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("users")
|
||||
.path(id.toString())
|
||||
.path("status")
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("PUT", Entity.json(userStatusForm));
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
|
||||
UserStatus userStatus200Resp = response.readEntity(UserStatus.class);
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.userStatus200(userStatus200Resp)
|
||||
.build();
|
||||
case 400:
|
||||
List<GenericError> genericError400Resp = response.readEntity(new GenericType<List<GenericError>>() {});
|
||||
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.genericError400(genericError400Resp)
|
||||
.build();
|
||||
case 401:
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 404:
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return PutUserStatusFormByIdResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class PutUserStatusFormByIdResponse {
|
||||
private UserStatus userStatus200;
|
||||
private List<GenericError> genericError400;
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark a user as deleted. The user cannot be accessed by the api, but will stay in the db for a while, before completely removed.
|
||||
**/
|
||||
public static class DeleteById {
|
||||
|
||||
private final UsersApiClientConfig config;
|
||||
|
||||
public DeleteById(@NonNull final UsersApiClientConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public DeleteByIdResponse request(@NonNull String id) {
|
||||
// /users/:id
|
||||
final URI uri = UriBuilder.fromUri(this.config.getBaseUrl())
|
||||
.path("users")
|
||||
.path(id.toString())
|
||||
.build();
|
||||
|
||||
WebTarget target = config.getClient().target(uri);
|
||||
Response response = target.request(MediaType.APPLICATION_JSON)
|
||||
.method("DELETE");
|
||||
int status = response.getStatus();
|
||||
switch(status) {
|
||||
case 200:
|
||||
return DeleteByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 401:
|
||||
return DeleteByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
case 404:
|
||||
return DeleteByIdResponse.builder()
|
||||
.status(status)
|
||||
.headers(response.getHeaders())
|
||||
.build();
|
||||
default:
|
||||
return DeleteByIdResponse.builder()
|
||||
.status(status)
|
||||
.unexpected(response.readEntity(String.class))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Builder
|
||||
@Data
|
||||
public static class DeleteByIdResponse {
|
||||
|
||||
private final int status;
|
||||
private final MultivaluedMap<String, Object> headers;
|
||||
private final String unexpected;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -18,7 +18,13 @@
|
|||
"email": "info@nclazz.de"
|
||||
}
|
||||
},
|
||||
"headers": [],
|
||||
"headers": [
|
||||
{
|
||||
"name": "x-something",
|
||||
"type": "string",
|
||||
"required": true
|
||||
}
|
||||
],
|
||||
"imports": [
|
||||
{
|
||||
"uri": "https://app.apibuilder.io/nclazz/common/latest/service.json",
|
||||
|
|
|
@ -3,6 +3,7 @@ const Mustache = require('mustache')
|
|||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const utils = require('../utils')
|
||||
const javaType = require('../java-type')
|
||||
|
||||
const templateApiConfig = fs.readFileSync(path.resolve(path.join('templates', 'jax-rs-config.java.mustache')), 'utf-8')
|
||||
const templateApi = fs.readFileSync(path.resolve(path.join('templates', 'jax-rs-api.java.mustache')), 'utf-8')
|
||||
|
@ -16,6 +17,12 @@ module.exports = (service) => {
|
|||
service.package = service.namespace
|
||||
const resources = javaClient.mapResources(service.resources, service.namespace)
|
||||
|
||||
service.headers = service.headers.map(header => {
|
||||
header.type = javaType.mapJavaType(header.type, service.namespace)
|
||||
header.label = utils.camelcase(header.name)
|
||||
return header
|
||||
})
|
||||
|
||||
const files = resources.map(resource => {
|
||||
return {
|
||||
name: `${resource.name}.java`,
|
||||
|
|
|
@ -15,17 +15,34 @@ import org.glassfish.jersey.client.HttpUrlConnectorProvider;
|
|||
|
||||
import javax.ws.rs.client.Client;
|
||||
import javax.ws.rs.client.ClientBuilder;
|
||||
import javax.ws.rs.client.ClientRequestFilter;
|
||||
import javax.ws.rs.client.ClientRequestContext;
|
||||
import java.io.IOException;
|
||||
|
||||
@Builder(toBuilder = true)
|
||||
@With
|
||||
@Getter
|
||||
@EqualsAndHashCode
|
||||
public class {{configName}} {
|
||||
public class {{configName}} implements ClientRequestFilter {
|
||||
|
||||
@NonNull
|
||||
private final String baseUrl;
|
||||
@Builder.Default
|
||||
private final Client client = ClientBuilder.newClient()
|
||||
.register(this)
|
||||
.property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true);
|
||||
|
||||
{{#headers}}/** {{#description}}{{.}}
|
||||
{{/description}} **/{{#required}}
|
||||
@NonNull{{/required}}
|
||||
private {{{type.name}}} {{label}};
|
||||
{{/headers}}
|
||||
|
||||
@Override
|
||||
public void filter(ClientRequestContext requestContext) throws IOException {
|
||||
{{#headers}}
|
||||
requestContext.getHeaders().add("{{name}}", this.{{label}});
|
||||
{{/headers}}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue