Skip to content

Commit

Permalink
Быстрофикс
Browse files Browse the repository at this point in the history
  • Loading branch information
Vitalii Ungurean committed Mar 2, 2025
1 parent b501af9 commit 297a8bc
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,19 @@
import club.ttg.dnd5.domain.species.model.SpeciesFeature;
import club.ttg.dnd5.domain.species.rest.dto.FeatureRequest;
import club.ttg.dnd5.domain.species.rest.dto.SpeciesFeatureResponse;
import club.ttg.dnd5.util.SlugifyUtil;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;

@Mapper(componentModel = "spring")
public interface SpeciesFeatureMapper {
SpeciesFeatureResponse toDto(SpeciesFeature speciesFeature);

@Mapping(target = "url", source = "name", qualifiedByName = "generateUrl")
SpeciesFeature toEntity(FeatureRequest request);

@Named("generateUrl")
default String generateUrl(String name) {
return SlugifyUtil.getSlug(name);
}
}
22 changes: 22 additions & 0 deletions src/main/java/club/ttg/dnd5/util/SlugifyUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package club.ttg.dnd5.util;

import com.github.slugify.Slugify;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class SlugifyUtil {
private final static Slugify slugify = Slugify.builder()
.transliterator(true)
.build();

/**
* Преобразование текста в url-friendly строку
*
* @param text исходный текст
* @return url-friendly строка
*/
public static String getSlug(String text) {
return slugify.slugify(text);
}
}

0 comments on commit 297a8bc

Please sign in to comment.