Skip to content

Commit

Permalink
Merge pull request #146 from Tech-Harbor/Bezsmertnyi
Browse files Browse the repository at this point in the history
Bezsmertnyi: mapstruct
  • Loading branch information
Vladik-gif authored Aug 7, 2024
2 parents 0d95d1c + ae387a5 commit 2f0fcaf
Show file tree
Hide file tree
Showing 46 changed files with 176 additions and 724 deletions.
5 changes: 2 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ dependencies {
implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.3.0'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '3.2.1'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-websocket', version: '3.2.2'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version: '3.2.1'
implementation group: 'org.springframework.boot', name: 'spring-boot-configuration-processor', version: '3.2.0'
}
Expand All @@ -54,10 +53,10 @@ dependencies {

//ADDITIONAL
dependencies {
implementation group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.5.3.Final'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'
implementation 'org.mapstruct:mapstruct:1.5.5.Final'
implementation 'com.cloudinary:cloudinary-http44:1.17.0'
implementation group: 'org.liquibase', name: 'liquibase-core', version: '4.24.0'
implementation group: 'org.mapstruct', name: 'mapstruct', version: '1.5.5.Final'
implementation group: 'org.freemarker', name: 'freemarker', version: '2.3.31'
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

@Component
@RequiredArgsConstructor
public class JwtAuthFilter extends OncePerRequestFilter implements JwtAuthServerFilter{
public class JwtAuthFilter extends OncePerRequestFilter implements JwtAuthServerFilter {

private final MyUserDetailsService userDetailsService;
private final JwtTokenServer jwtTokenServer;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
import jakarta.servlet.http.HttpServletResponse;

public interface JwtAuthServerFilter {
void updateRefreshTokenFilter(final HttpServletRequest request, final HttpServletResponse response);
void updateRefreshTokenFilter(HttpServletRequest request, HttpServletResponse response);
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.http.MediaType.ALL_VALUE;

@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "Ok", content = {
@Content(mediaType = APPLICATION_JSON_VALUE, schema =
@Content(mediaType = ALL_VALUE, schema =
@Schema(implementation = AuthResponse.class))}
),
}
Expand Down
5 changes: 0 additions & 5 deletions src/main/java/com/example/backend/utils/enums/Status.java

This file was deleted.

58 changes: 58 additions & 0 deletions src/main/java/com/example/backend/utils/general/BaseMapper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.example.backend.utils.general;

import com.example.backend.utils.enums.RegisterAuthStatus;
import com.example.backend.utils.enums.Role;
import com.example.backend.web.Advertisement.store.AdvertisementEntity;
import com.example.backend.web.Advertisement.store.dto.AdvertisementDTO;
import com.example.backend.web.Advertisement.store.mapper.AdvertisementMapper;
import com.example.backend.web.Category.store.CategoryEntity;
import com.example.backend.web.File.ImageRepository;
import com.example.backend.web.File.store.ImageEntity;
import lombok.RequiredArgsConstructor;
import org.mapstruct.Named;
import org.springframework.stereotype.Component;

import java.util.Collections;
import java.util.List;
import java.util.Set;

@Named("BaseMapper")
@Component
@RequiredArgsConstructor
public class BaseMapper {

private final AdvertisementMapper advertisementMapper;
private final ImageRepository imageRepository;

@Named("getAllAdvertisements")
public List<AdvertisementDTO> getAllAdvertisements(final List<AdvertisementEntity> advertisement) {
return Collections.singletonList(advertisementMapper
.advertisementMapperDTO((AdvertisementEntity) advertisement)
);
}

@Named("getAllImages")
public List<ImageEntity> getAllImages(final List<ImageEntity> image) {
return imageRepository.findAll();
}

@Named("getCategoryName")
public String getCategoryName(final CategoryEntity category) {
return category.getName();
}

@Named("getImageUrl")
public String getImageUrl(final ImageEntity image) {
return image.getImageUrl();
}

@Named("getEnumRole")
public Set<Role> getEnumRole(final Set<Role> roles) {
return roles;
}

@Named("getEnumRegisterAuthStatus")
public RegisterAuthStatus getEnumRegisterAuthStatus(final RegisterAuthStatus registerAuthStatus) {
return registerAuthStatus;
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
import com.example.backend.web.Advertisement.store.dto.AdvertisementCreateDTO;
import com.example.backend.web.Advertisement.store.dto.AdvertisementDTO;
import com.example.backend.web.Advertisement.store.dto.AdvertisementUpdateDTO;
import com.example.backend.web.Advertisement.store.factory.AdvertisementCreateFactory;
import com.example.backend.web.Advertisement.store.factory.AdvertisementFactory;
import com.example.backend.web.Advertisement.store.factory.AdvertisementUpdateFactory;
import com.example.backend.web.Advertisement.store.mapper.AdvertisementMapper;
import com.example.backend.web.Category.CategoryServer;
import com.example.backend.web.File.ImageServer;
import com.example.backend.web.File.store.ImageEntity;
Expand All @@ -26,10 +24,8 @@
@AllArgsConstructor
public class AdvertisementServerImpl implements AdvertisementServer {

private final AdvertisementUpdateFactory advertisementUpdateFactory;
private final AdvertisementCreateFactory advertisementCreateFactory;
private final AdvertisementRepository advertisementRepository;
private final AdvertisementFactory advertisementFactory;
private final AdvertisementMapper advertisementMapper;
private final CategoryServer categoryServer;
private final ImageServer imageServer;
private final UserServer userServer;
Expand Down Expand Up @@ -63,13 +59,13 @@ public AdvertisementCreateDTO createAdvertisement(final String jwt,
.active(advertisement.active())
.build();

return advertisementCreateFactory.apply(advertisementRepository.save(newAdvertisement));
return advertisementMapper.advertisementMapperCreateDTO(advertisementRepository.save(newAdvertisement));
}

@Override
public List<AdvertisementDTO> getAllAdvertisement() {
return advertisementRepository.findAll().stream()
.map(advertisementFactory)
.map(advertisementMapper::advertisementMapperDTO)
.toList();
}

Expand All @@ -79,7 +75,7 @@ public AdvertisementDTO advertisement(final String jwt) {
final var advertisementRepositoryByName =
advertisementRepository.getByName(user.getAdvertisements().get(0).getName());

return advertisementFactory.apply(advertisementRepositoryByName);
return advertisementMapper.advertisementMapperDTO(advertisementRepositoryByName);
}

@Override
Expand Down Expand Up @@ -123,7 +119,7 @@ public AdvertisementUpdateDTO editAdvertisement(final String jwt, final Advertis
idAdvertisement.setAuction(advertisementDTO.active());
}

return advertisementUpdateFactory.apply(advertisementRepository.save(idAdvertisement));
return advertisementMapper.advertisementMapperUpdateDTO(advertisementRepository.save(idAdvertisement));
}

@Override
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.example.backend.web.Advertisement.store.mapper;

import com.example.backend.web.Advertisement.store.AdvertisementEntity;
import com.example.backend.web.Advertisement.store.dto.AdvertisementCreateDTO;
import com.example.backend.web.Advertisement.store.dto.AdvertisementDTO;
import com.example.backend.web.Advertisement.store.dto.AdvertisementUpdateDTO;
import com.example.backend.utils.general.BaseMapper;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

@Mapper(componentModel = "spring", uses = {BaseMapper.class})
public interface AdvertisementMapper {
@Mapping(target = "images", qualifiedByName = {"BaseMapper", "getAllImages"})
@Mapping(target = "category", qualifiedByName = {"BaseMapper", "getCategoryName"})
AdvertisementCreateDTO advertisementMapperCreateDTO(AdvertisementEntity entity);
@Mapping(target = "category", qualifiedByName = {"BaseMapper", "getCategoryName"})
AdvertisementUpdateDTO advertisementMapperUpdateDTO(AdvertisementEntity entity);
@Mapping(target = "images", qualifiedByName = {"BaseMapper", "getAllImages"})
@Mapping(target = "category", qualifiedByName = {"BaseMapper", "getCategoryName"})
AdvertisementDTO advertisementMapperDTO(AdvertisementEntity entity);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
import com.example.backend.web.Category.store.CategoryEntity;
import com.example.backend.web.Category.store.dto.CategoryCreateDTO;
import com.example.backend.web.Category.store.dto.CategoryDTO;
import com.example.backend.web.Category.store.factory.CategoryCreateFactory;
import com.example.backend.web.Category.store.factory.CategoryFactory;
import com.example.backend.web.Category.store.mapper.CategoryMapper;
import com.example.backend.web.File.ImageServer;
import jakarta.transaction.Transactional;
import lombok.AllArgsConstructor;
Expand All @@ -18,16 +17,15 @@
@AllArgsConstructor
public class CategoryServerImpl implements CategoryServer {

private final CategoryCreateFactory categoryCreateFactory;
private final CategoryRepository categoryRepository;
private final CategoryFactory categoryFactory;
private final CategoryMapper categoryMapper;
private final ImageServer imageServer;

@Override
public List<CategoryDTO> getAll() {
return categoryRepository.findAll()
.stream()
.map(categoryFactory)
.map(categoryMapper::categoryDTO)
.toList();
}

Expand All @@ -38,7 +36,7 @@ public CategoryEntity getCategoryName(final String name) {

@Override
public CategoryDTO getCategoryDTOName(final String name) {
return categoryFactory.apply(categoryRepository.getByName(name));
return categoryMapper.categoryDTO(categoryRepository.getByName(name));
}

@Override
Expand All @@ -51,7 +49,7 @@ public CategoryCreateDTO create(final CategoryCreateDTO categoryDTO, final Multi
.image(newImage)
.build();

return categoryCreateFactory.apply(categoryRepository.save(newCategory));
return categoryMapper.categoryMapperCreateDTO(categoryRepository.save(newCategory));
}

@Override
Expand All @@ -70,7 +68,7 @@ public CategoryCreateDTO update(final String name,
category.setImage(uploadImage);
}

return categoryCreateFactory.apply(categoryRepository.save(category));
return categoryMapper.categoryMapperCreateDTO(categoryRepository.save(category));
}

@Override
Expand Down

This file was deleted.

Loading

0 comments on commit 2f0fcaf

Please sign in to comment.