Move to package com.backend.unifier.title (remove service suffix), add list endpoint

This commit is contained in:
2026-03-22 01:25:35 +05:00
parent 5fa7b099c8
commit f4374d5d59
16 changed files with 97 additions and 24 deletions

View File

@@ -90,6 +90,10 @@
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-health</artifactId> <artifactId>quarkus-smallrye-health</artifactId>
</dependency> </dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-redis-client</artifactId>
</dependency>
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-junit</artifactId> <artifactId>quarkus-junit</artifactId>

View File

@@ -1,8 +1,8 @@
package com.backend.unifier.title.service.api; package com.backend.unifier.title.api;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import com.backend.metadata.kodik.service.api.model.KodikResponse; import com.backend.metadata.kodik.api.model.KodikResponse;
import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.Uni;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
@@ -13,6 +13,10 @@ import jakarta.ws.rs.QueryParam;
@Path("/kodik") @Path("/kodik")
@RegisterRestClient(baseUri = "stork://kodik-metadata-service") @RegisterRestClient(baseUri = "stork://kodik-metadata-service")
public interface KodikSearchService { public interface KodikSearchService {
@GET
@Path("/list")
KodikResponse list();
@GET @GET
@Path("/search") @Path("/search")
KodikResponse search(@QueryParam("title") String title); KodikResponse search(@QueryParam("title") String title);

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.api; package com.backend.unifier.title.api;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.health; package com.backend.unifier.title.health;
import java.time.Instant; import java.time.Instant;
@@ -8,8 +8,8 @@ import org.eclipse.microprofile.health.HealthCheckResponseBuilder;
import org.eclipse.microprofile.health.Readiness; import org.eclipse.microprofile.health.Readiness;
import org.eclipse.microprofile.rest.client.inject.RestClient; import org.eclipse.microprofile.rest.client.inject.RestClient;
import com.backend.metadata.kodik.service.api.model.KodikResponse; import com.backend.metadata.kodik.api.model.KodikResponse;
import com.backend.unifier.title.service.api.KodikSearchService; import com.backend.unifier.title.api.KodikSearchService;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.mapper; package com.backend.unifier.title.mapper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -9,10 +9,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
import org.mapstruct.Named; import org.mapstruct.Named;
import com.backend.metadata.kodik.service.api.model.KodikResponse; import com.backend.metadata.kodik.api.model.KodikResponse;
import com.backend.metadata.kodik.service.api.model.MaterialData; import com.backend.metadata.kodik.api.model.MaterialData;
import com.backend.unifier.title.service.model.SearchEntryDTO; import com.backend.unifier.title.model.SearchEntryDTO;
import com.backend.unifier.title.service.model.SearchResponseDTO; import com.backend.unifier.title.model.SearchResponseDTO;
@Mapper @Mapper
public interface KodikResponseMapper { public interface KodikResponseMapper {

View File

@@ -0,0 +1,4 @@
package com.backend.unifier.title.model;
public record ContentIdentifier(String source, String id) {
}

View File

@@ -0,0 +1,4 @@
package com.backend.unifier.title.model;
public record DetailEntryDTO() {
}

View File

@@ -0,0 +1,23 @@
package com.backend.unifier.title.model;
public class IdentifierPointer {
private String key;
private ContentIdentifier identifier;
public IdentifierPointer(String key, ContentIdentifier identifier) {
this.key = key;
this.identifier = identifier;
}
IdentifierPointer() {
}
public String getKey() {
return key;
}
public ContentIdentifier getIdentifier() {
return identifier;
}
}

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.model; package com.backend.unifier.title.model;
import java.util.List; import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.model; package com.backend.unifier.title.model;
import java.util.List; import java.util.List;

View File

@@ -0,0 +1,15 @@
package com.backend.unifier.title.resource;
import com.backend.unifier.title.model.DetailEntryDTO;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
@Path("/")
public class DetailResource {
@GET
@Path("/detail")
public DetailEntryDTO detail(String id) {
return null;
}
}

View File

@@ -1,10 +1,10 @@
package com.backend.unifier.title.service.resource; package com.backend.unifier.title.resource;
import org.eclipse.microprofile.rest.client.inject.RestClient; import org.eclipse.microprofile.rest.client.inject.RestClient;
import com.backend.unifier.title.service.api.KodikSearchService; import com.backend.unifier.title.api.KodikSearchService;
import com.backend.unifier.title.service.model.SearchResponseDTO; import com.backend.unifier.title.model.SearchResponseDTO;
import com.backend.unifier.title.service.service.KodikResponseConvertService; import com.backend.unifier.title.service.KodikResponseConvertService;
import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.Uni;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
@@ -37,4 +37,11 @@ public class SearchResource {
return kodikConvertService.convert(result); return kodikConvertService.convert(result);
} }
@GET
@Path("/list")
public SearchResponseDTO list() {
var result = kodikSearchService.list();
return kodikConvertService.convert(result);
}
} }

View File

@@ -0,0 +1,8 @@
package com.backend.unifier.title.service;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped
public class IdentifierPointerService {
}

View File

@@ -1,13 +1,13 @@
package com.backend.unifier.title.service.service; package com.backend.unifier.title.service;
import java.util.List; import java.util.List;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.backend.metadata.kodik.service.api.model.KodikResponse; import com.backend.metadata.kodik.api.model.KodikResponse;
import com.backend.unifier.title.service.mapper.KodikResponseMapper; import com.backend.unifier.title.mapper.KodikResponseMapper;
import com.backend.unifier.title.service.model.SearchEntryDTO; import com.backend.unifier.title.model.SearchEntryDTO;
import com.backend.unifier.title.service.model.SearchResponseDTO; import com.backend.unifier.title.model.SearchResponseDTO;
import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
@@ -39,6 +39,10 @@ public class KodikResponseConvertService {
.map(this::resolveEntryPosters) .map(this::resolveEntryPosters)
.toList(); .toList();
if (entries.isEmpty()) {
return Uni.createFrom().item(new SearchResponseDTO(List.of()));
}
return Uni.combine().all().unis(entries) return Uni.combine().all().unis(entries)
.with(list -> new SearchResponseDTO((List<SearchEntryDTO>) list)); .with(list -> new SearchResponseDTO((List<SearchEntryDTO>) list));
} }

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.service; package com.backend.unifier.title.service;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.service; package com.backend.unifier.title.service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;