feat: implement final Resume API

This commit is contained in:
2025-08-26 17:41:07 +02:00
parent 7f12034174
commit 9ff4b21dd9
33 changed files with 265 additions and 284 deletions

View File

@@ -1,26 +0,0 @@
package com.pablotj.portfolio.application.home;
import com.pablotj.portfolio.domain.home.Home;
import com.pablotj.portfolio.domain.home.port.HomeRepositoryPort;
public class CreateHomeUseCase {
private final HomeRepositoryPort repository;
public CreateHomeUseCase(HomeRepositoryPort repository) {
this.repository = repository;
}
public Home handle(Command cmd) {
var home = Home.builder()
.id(null)
.title(cmd.title())
.description(cmd.description())
.url(cmd.url())
.build();
return repository.save(home);
}
public record Command(String title, String description, String url) {
}
}

View File

@@ -1,24 +0,0 @@
package com.pablotj.portfolio.application.home;
import com.pablotj.portfolio.domain.home.Home;
import com.pablotj.portfolio.domain.home.HomeId;
import com.pablotj.portfolio.domain.home.port.HomeRepositoryPort;
import java.util.List;
import java.util.Optional;
public class GetHomeUseCase {
private final HomeRepositoryPort repository;
public GetHomeUseCase(HomeRepositoryPort repository) {
this.repository = repository;
}
public Optional<Home> byId(Long id) {
return repository.findById(new HomeId(id));
}
public List<Home> all() {
return repository.findAll();
}
}

View File

@@ -0,0 +1,35 @@
package com.pablotj.portfolio.application.resume;
import com.pablotj.portfolio.domain.resume.Resume;
import com.pablotj.portfolio.domain.resume.port.ResumeRepositoryPort;
import jakarta.validation.constraints.NotBlank;
public class CreateResumeUseCase {
private final ResumeRepositoryPort repository;
public CreateResumeUseCase(ResumeRepositoryPort repository) {
this.repository = repository;
}
public Resume handle(Command cmd) {
var home = Resume.builder()
.id(null)
.name(cmd.title())
.surnames(cmd.surnames())
.title(cmd.title())
.summary(cmd.summary())
.icon(cmd.icon())
.build();
return repository.save(home);
}
public record Command(
String name,
String surnames,
String title,
String summary,
String icon
) {
}
}

View File

@@ -0,0 +1,24 @@
package com.pablotj.portfolio.application.resume;
import com.pablotj.portfolio.domain.resume.Resume;
import com.pablotj.portfolio.domain.resume.ResumeId;
import com.pablotj.portfolio.domain.resume.port.ResumeRepositoryPort;
import java.util.List;
import java.util.Optional;
public class GetResumeUseCase {
private final ResumeRepositoryPort repository;
public GetResumeUseCase(ResumeRepositoryPort repository) {
this.repository = repository;
}
public Optional<Resume> byId(Long id) {
return repository.findById(new ResumeId(id));
}
public List<Resume> all() {
return repository.findAll();
}
}