feat: implement final Contact API
This commit is contained in:
@@ -6,24 +6,38 @@ import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.GenerationType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.validation.constraints.Email;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
@Entity
|
||||
@Table(name = "contacts")
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
@Builder
|
||||
public class ContactJpaEntity {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
private String country;
|
||||
private String city;
|
||||
|
||||
@Column(nullable = false)
|
||||
private String title;
|
||||
@Email
|
||||
private String email;
|
||||
|
||||
@Column(columnDefinition = "text")
|
||||
private String description;
|
||||
private String phone;
|
||||
|
||||
private String url;
|
||||
@Column(name = "linkedin_url")
|
||||
private String linkedin;
|
||||
|
||||
@Column(name = "github_url")
|
||||
private String github;
|
||||
}
|
||||
@@ -46,9 +46,12 @@ public class ContactController {
|
||||
@PostMapping
|
||||
public ResponseEntity<ContactDto> create(@Valid @RequestBody CreateContactRequest request) {
|
||||
var cmd = new CreateContactUseCase.Command(
|
||||
request.title(),
|
||||
request.description(),
|
||||
request.url()
|
||||
request.country(),
|
||||
request.city(),
|
||||
request.email(),
|
||||
request.phone(),
|
||||
request.linkedin(),
|
||||
request.github()
|
||||
);
|
||||
var created = createUC.handle(cmd);
|
||||
var body = mapper.toDto(created);
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
package com.pablotj.portfolio.infrastructure.rest.contact.dto;
|
||||
|
||||
import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
public record ContactDto(Long id, @NotBlank String title, String description, String url) {
|
||||
public record ContactDto(
|
||||
Long id,
|
||||
String country,
|
||||
String city,
|
||||
@NotBlank @Email String email,
|
||||
String phone,
|
||||
String linkedin,
|
||||
String github
|
||||
) {
|
||||
}
|
||||
@@ -1,10 +1,14 @@
|
||||
package com.pablotj.portfolio.infrastructure.rest.contact.dto;
|
||||
|
||||
import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
|
||||
public record CreateContactRequest(
|
||||
@NotBlank String title,
|
||||
String description,
|
||||
String url
|
||||
String country,
|
||||
String city,
|
||||
@NotBlank @Email String email,
|
||||
String phone,
|
||||
String linkedin,
|
||||
String github
|
||||
) {
|
||||
}
|
||||
Reference in New Issue
Block a user