View Javadoc
1   package de.dlr.shepard.auth.users.io;
2   
3   import de.dlr.shepard.auth.apikey.entities.ApiKey;
4   import de.dlr.shepard.auth.users.entities.User;
5   import de.dlr.shepard.common.subscription.entities.Subscription;
6   import java.util.UUID;
7   import lombok.Data;
8   import lombok.NoArgsConstructor;
9   import org.eclipse.microprofile.openapi.annotations.media.Schema;
10  
11  @Data
12  @NoArgsConstructor
13  @Schema(name = "User")
14  public class UserIO {
15  
16    @Schema(readOnly = true, required = true)
17    private String username;
18  
19    private String firstName;
20  
21    private String lastName;
22  
23    private String email;
24  
25    @Schema(readOnly = true, required = true)
26    private Long[] subscriptionIds;
27  
28    @Schema(readOnly = true, required = true)
29    private UUID[] apiKeyIds;
30  
31    public UserIO(User user) {
32      this.username = user.getUsername();
33      this.firstName = user.getFirstName();
34      this.lastName = user.getLastName();
35      this.email = user.getEmail();
36      this.subscriptionIds = user.getSubscriptions().stream().map(Subscription::getId).toArray(Long[]::new);
37      this.apiKeyIds = user.getApiKeys().stream().map(ApiKey::getUid).toArray(UUID[]::new);
38    }
39  }