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

@@ -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 com.backend.metadata.kodik.service.api.model.KodikResponse;
import com.backend.metadata.kodik.api.model.KodikResponse;
import io.smallrye.mutiny.Uni;
import jakarta.ws.rs.GET;
@@ -13,6 +13,10 @@ import jakarta.ws.rs.QueryParam;
@Path("/kodik")
@RegisterRestClient(baseUri = "stork://kodik-metadata-service")
public interface KodikSearchService {
@GET
@Path("/list")
KodikResponse list();
@GET
@Path("/search")
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;

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.health;
package com.backend.unifier.title.health;
import java.time.Instant;
@@ -8,8 +8,8 @@ import org.eclipse.microprofile.health.HealthCheckResponseBuilder;
import org.eclipse.microprofile.health.Readiness;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import com.backend.metadata.kodik.service.api.model.KodikResponse;
import com.backend.unifier.title.service.api.KodikSearchService;
import com.backend.metadata.kodik.api.model.KodikResponse;
import com.backend.unifier.title.api.KodikSearchService;
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.List;
@@ -9,10 +9,10 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import com.backend.metadata.kodik.service.api.model.KodikResponse;
import com.backend.metadata.kodik.service.api.model.MaterialData;
import com.backend.unifier.title.service.model.SearchEntryDTO;
import com.backend.unifier.title.service.model.SearchResponseDTO;
import com.backend.metadata.kodik.api.model.KodikResponse;
import com.backend.metadata.kodik.api.model.MaterialData;
import com.backend.unifier.title.model.SearchEntryDTO;
import com.backend.unifier.title.model.SearchResponseDTO;
@Mapper
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;

View File

@@ -1,4 +1,4 @@
package com.backend.unifier.title.service.model;
package com.backend.unifier.title.model;
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 com.backend.unifier.title.service.api.KodikSearchService;
import com.backend.unifier.title.service.model.SearchResponseDTO;
import com.backend.unifier.title.service.service.KodikResponseConvertService;
import com.backend.unifier.title.api.KodikSearchService;
import com.backend.unifier.title.model.SearchResponseDTO;
import com.backend.unifier.title.service.KodikResponseConvertService;
import io.smallrye.mutiny.Uni;
import jakarta.ws.rs.GET;
@@ -37,4 +37,11 @@ public class SearchResource {
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 org.mapstruct.factory.Mappers;
import com.backend.metadata.kodik.service.api.model.KodikResponse;
import com.backend.unifier.title.service.mapper.KodikResponseMapper;
import com.backend.unifier.title.service.model.SearchEntryDTO;
import com.backend.unifier.title.service.model.SearchResponseDTO;
import com.backend.metadata.kodik.api.model.KodikResponse;
import com.backend.unifier.title.mapper.KodikResponseMapper;
import com.backend.unifier.title.model.SearchEntryDTO;
import com.backend.unifier.title.model.SearchResponseDTO;
import io.smallrye.mutiny.Uni;
import jakarta.enterprise.context.ApplicationScoped;
@@ -39,6 +39,10 @@ public class KodikResponseConvertService {
.map(this::resolveEntryPosters)
.toList();
if (entries.isEmpty()) {
return Uni.createFrom().item(new SearchResponseDTO(List.of()));
}
return Uni.combine().all().unis(entries)
.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;

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.List;