Add position for book in collection

This commit is contained in:
2026-04-11 17:26:21 +02:00
parent 36a21c8891
commit d2fe3bf34f
14 changed files with 200 additions and 58 deletions

View File

@@ -10,12 +10,37 @@ import (
"gorm.io/gorm"
)
func CollectionQueryToCollectionItemDto(collectionsQueryResult []query.CollectionsQueryResult) []dto.CollectionItemGet {
var collections []dto.CollectionItemGet
func CollectionItemsQueryToDto(itemsQueryResult []query.CollectionItemQueryResult) []dto.CollectionItemGet {
var dtoItems []dto.CollectionItemGet
for _, queryResult := range itemsQueryResult {
bookItem := dto.BookItemGet{
ID: queryResult.ID,
Title: queryResult.Title,
Author: queryResult.Author,
Description: queryResult.Description,
InventaireID: queryResult.InventaireID,
IsInventaireEdition: queryResult.IsInventaireEdition,
Rating: queryResult.Rating,
Read: queryResult.Read,
StartReadDate: queryResult.StartReadDate,
WantRead: queryResult.WantRead,
CoverPath: queryResult.CoverPath,
}
dtoItems = append(dtoItems,
dto.CollectionItemGet{
Position: queryResult.Position,
Book: bookItem,
})
}
return dtoItems
}
func CollectionQueryToCollectionItemDto(collectionsQueryResult []query.CollectionsQueryResult) []dto.CollectionListItemGet {
var collections []dto.CollectionListItemGet
for _, collectionDb := range collectionsQueryResult {
i := findIdInCollection(collections, collectionDb.ID)
if i == -1 {
collections = append(collections, dto.CollectionItemGet{
collections = append(collections, dto.CollectionListItemGet{
ID: collectionDb.ID,
Name: collectionDb.Name,
})
@@ -30,9 +55,9 @@ func CollectionQueryToCollectionItemDto(collectionsQueryResult []query.Collectio
return collections
}
func collectionDbToCollectionBookItem(collectionDb *query.CollectionsQueryResult) *dto.CollectionBookItemGet {
func collectionDbToCollectionBookItem(collectionDb *query.CollectionsQueryResult) *dto.CollectionListBookItemGet {
if collectionDb.BookId > 0 {
bookItem := dto.CollectionBookItemGet{
bookItem := dto.CollectionListBookItemGet{
ID: collectionDb.BookId,
Title: collectionDb.BookTitle,
CoverPath: collectionDb.CoverPath,
@@ -44,7 +69,7 @@ func collectionDbToCollectionBookItem(collectionDb *query.CollectionsQueryResult
}
// returns the position in collections, -1 if not found
func findIdInCollection(collections []dto.CollectionItemGet, collectionId uint) int {
func findIdInCollection(collections []dto.CollectionListItemGet, collectionId uint) int {
for i, collection := range collections {
if collection.ID == collectionId {
return i