1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.linecorp.centraldogma.internal.api.v1;
18
19 import static java.time.format.DateTimeFormatter.ISO_INSTANT;
20 import static java.util.Objects.requireNonNull;
21
22 import java.time.Instant;
23
24 import com.fasterxml.jackson.annotation.JsonCreator;
25 import com.fasterxml.jackson.annotation.JsonInclude;
26 import com.fasterxml.jackson.annotation.JsonInclude.Include;
27 import com.fasterxml.jackson.annotation.JsonProperty;
28 import com.google.common.base.MoreObjects;
29
30 import com.linecorp.centraldogma.common.Revision;
31
32 @JsonInclude(Include.NON_EMPTY)
33 public class PushResultDto {
34
35 private final Revision revision;
36 private final String pushedAt;
37
38 @JsonCreator
39 public PushResultDto(@JsonProperty("revision") Revision revision,
40 @JsonProperty("pushedAt") Instant pushedAt) {
41 this.revision = requireNonNull(revision, "revision");
42 this.pushedAt = ISO_INSTANT.format(pushedAt);
43 }
44
45 public PushResultDto(Revision revision, long pushAt) {
46 this(revision, Instant.ofEpochMilli(pushAt));
47 }
48
49 @JsonProperty("revision")
50 public Revision revision() {
51 return revision;
52 }
53
54 @JsonProperty("pushedAt")
55 public String pushedAt() {
56 return pushedAt;
57 }
58
59 @Override
60 public String toString() {
61 return MoreObjects.toStringHelper(this)
62 .add("revision", revision())
63 .add("pushedAt", pushedAt())
64 .toString();
65 }
66 }