mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 16:05:44 +01:00
Use Optional for optional attributes
This commit is contained in:
@@ -10,6 +10,7 @@ import javax.ws.rs.core.UriInfo;
|
||||
import java.time.Instant;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
@Mapper
|
||||
public abstract class User2UserDtoMapper {
|
||||
@@ -35,8 +36,16 @@ public abstract class User2UserDtoMapper {
|
||||
target.setLinks(links);
|
||||
}
|
||||
|
||||
@Mappings({@Mapping(target = "lastModified"), @Mapping(target = "creationDate")})
|
||||
@Mapping(target = "creationDate")
|
||||
Instant mapTime(Long epochMilli) {
|
||||
return epochMilli == null? null: Instant.ofEpochMilli(epochMilli);
|
||||
// TODO assert parameter not null
|
||||
return Instant.ofEpochMilli(epochMilli);
|
||||
}
|
||||
|
||||
@Mapping(target = "lastModified")
|
||||
Optional<Instant> mapOptionalTime(Long epochMilli) {
|
||||
return Optional
|
||||
.ofNullable(epochMilli)
|
||||
.map(Instant::ofEpochMilli);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import lombok.Data;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import java.time.Instant;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
@Data
|
||||
public class UserDto {
|
||||
@@ -12,7 +13,7 @@ public class UserDto {
|
||||
private boolean admin;
|
||||
private Instant creationDate;
|
||||
private String displayName;
|
||||
private Instant lastModified;
|
||||
private Optional<Instant> lastModified;
|
||||
private String mail;
|
||||
private String name;
|
||||
private String password;
|
||||
|
||||
@@ -2,10 +2,14 @@ package sonia.scm.api.v2.resources;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import org.apache.shiro.authc.credential.PasswordService;
|
||||
import org.mapstruct.*;
|
||||
import org.mapstruct.Context;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.Named;
|
||||
import sonia.scm.user.User;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Optional;
|
||||
|
||||
import static sonia.scm.api.rest.resources.UserResource.DUMMY_PASSWORT;
|
||||
|
||||
@@ -31,8 +35,14 @@ public abstract class UserDto2UserMapper {
|
||||
}
|
||||
}
|
||||
|
||||
@Mappings({@Mapping(target = "lastModified"), @Mapping(target = "creationDate")})
|
||||
@Mapping(target = "creationDate")
|
||||
Long mapTime(Instant instant) {
|
||||
return instant == null? null: instant.toEpochMilli();
|
||||
// TODO assert parameter not null
|
||||
return instant.toEpochMilli();
|
||||
}
|
||||
|
||||
@Mapping(target = "lastModified")
|
||||
Long mapOptionalTime(Optional<Instant> instant) {
|
||||
return instant.map(Instant::toEpochMilli).orElse(null);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user