Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# java-explore-with-me
Template repository for ExploreWithMe project.


https://github.com/NadezhdaTA/java-explore-with-me/pull/4

This file was deleted.

24 changes: 0 additions & 24 deletions evm-service/src/main/java/ru/practicum/User/Model/User.java

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,34 +1,39 @@
package ru.practicum.Category.Controller;
package ru.practicum.category.controller;

import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import ru.practicum.Category.DTO.CategoryDTO;
import ru.practicum.Category.DTO.NewCategoryDTO;
import ru.practicum.Category.Service.Admin.CategoryAdminServiceImpl;
import ru.practicum.category.dto.CategoryDTO;
import ru.practicum.category.dto.NewCategoryDTO;
import ru.practicum.category.service.admin.CategoryAdminService;

@RestController
@RequestMapping("/admin/categories")
@RequiredArgsConstructor
@Slf4j
public class CategoryAdminController {
private final CategoryAdminServiceImpl categoryService;
private final CategoryAdminService categoryService;

@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public CategoryDTO createCategory(@RequestBody @Valid NewCategoryDTO category) {
log.info("Create new category: {}", category);
return categoryService.addCategory(category);
}

@DeleteMapping("/{catId}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteCategory(@PathVariable Integer catId) {
log.info("Delete category: {}", catId);
categoryService.deleteCategory(catId);
}

@PatchMapping("/{catId}")
@ResponseStatus(HttpStatus.OK)
public CategoryDTO updateCategory(@PathVariable Integer catId, @RequestBody @Valid CategoryDTO category) {
log.info("Update category: {}, {}", catId, category);
return categoryService.updateCategory(catId, category);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
package ru.practicum.Category.Controller;
package ru.practicum.category.controller;

import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import ru.practicum.Category.DTO.CategoryDTO;
import ru.practicum.Category.Service.Public.CategoryPublicService;
import ru.practicum.category.dto.CategoryDTO;
import ru.practicum.category.service.open.CategoryPublicService;

import java.util.List;

@RestController
@RequestMapping("/categories")
@RequiredArgsConstructor
@Slf4j
public class CategoryPublicController {
private final CategoryPublicService categoryService;

@GetMapping("/{catId}")
public CategoryDTO getCategory(@PathVariable Integer catId) {
log.info("Get category: {}", catId);
return categoryService.getCategory(catId);
}

@GetMapping
public List<CategoryDTO> getCategories(@RequestParam(defaultValue = "0") @PositiveOrZero Integer from,
@RequestParam(defaultValue = "10") @Positive Integer size) {
log.info("Get categories: {}, {}", from, size);
return categoryService.getCategories(from, size);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.practicum.Category.DTO;
package ru.practicum.category.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.practicum.Category.DTO;
package ru.practicum.category.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package ru.practicum.Category.Mapper;
package ru.practicum.category.mapper;

import org.mapstruct.Mapper;
import ru.practicum.Category.DTO.CategoryDTO;
import ru.practicum.Category.DTO.NewCategoryDTO;
import ru.practicum.Category.Model.Category;
import ru.practicum.category.dto.CategoryDTO;
import ru.practicum.category.dto.NewCategoryDTO;
import ru.practicum.category.model.Category;

@Mapper(componentModel = "spring")
public interface CategoryMapper {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package ru.practicum.category.model;

import jakarta.persistence.*;
import lombok.*;

import java.util.Objects;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Entity
@Table(name = "categories")
public class Category {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;

@Column(name = "name", length = 50)
private String name;

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Category category = (Category) o;
return Objects.equals(id, category.id);
}

@Override
public int hashCode() {
return getClass().hashCode();
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ru.practicum.Category.Repository;
package ru.practicum.category.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import ru.practicum.Category.Model.Category;
import ru.practicum.category.model.Category;

import java.util.Optional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ru.practicum.Category.Service.Admin;
package ru.practicum.category.service.admin;

import ru.practicum.Category.DTO.CategoryDTO;
import ru.practicum.Category.DTO.NewCategoryDTO;
import ru.practicum.category.dto.CategoryDTO;
import ru.practicum.category.dto.NewCategoryDTO;

public interface CategoryAdminService {
CategoryDTO addCategory(NewCategoryDTO categoryDTO);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
package ru.practicum.Category.Service.Admin;
package ru.practicum.category.service.admin;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import ru.practicum.Category.DTO.CategoryDTO;
import ru.practicum.Category.DTO.NewCategoryDTO;
import ru.practicum.Category.Mapper.CategoryMapper;
import ru.practicum.Category.Model.Category;
import ru.practicum.Category.Repository.CategoryRepository;
import ru.practicum.Event.Model.Event;
import ru.practicum.Event.Repository.EventRepository;
import ru.practicum.Exception.ConflictException;
import ru.practicum.Exception.NotFoundException;
import ru.practicum.category.dto.CategoryDTO;
import ru.practicum.category.dto.NewCategoryDTO;
import ru.practicum.category.mapper.CategoryMapper;
import ru.practicum.category.model.Category;
import ru.practicum.category.repository.CategoryRepository;
import ru.practicum.event.model.Event;
import ru.practicum.event.repository.EventRepository;
import ru.practicum.exception.ConflictException;
import ru.practicum.exception.NotFoundException;

import java.util.List;

@Service
@RequiredArgsConstructor
@Slf4j
public class CategoryAdminServiceImpl implements CategoryAdminService {
private final CategoryMapper categoryMapper;
private final CategoryRepository repository;
Expand All @@ -24,7 +26,9 @@ public class CategoryAdminServiceImpl implements CategoryAdminService {
@Override
public CategoryDTO addCategory(NewCategoryDTO newCategory) {
Category category = categoryMapper.toCategory(newCategory);
return categoryMapper.toCategoryDTO(repository.save(category));
CategoryDTO categoryDTO = categoryMapper.toCategoryDTO(repository.save(category));
log.info("Category is added: {}", categoryDTO);
return categoryDTO;
}

@Override
Expand All @@ -37,23 +41,24 @@ public void deleteCategory(Integer catId) {
throw new ConflictException("Category with id " + catId + " has connected events");
}

// Integer categoryEvents =

repository.deleteById(catId);
log.info("Category is deleted: {}", category);
}

@Override
public CategoryDTO updateCategory(int id, CategoryDTO newCategory) {
Category category = repository.findById(id)
.orElseThrow(() -> new NotFoundException("Category with id " + id + " not found"));

CategoryDTO categoryDTO;
if (category.getName().equals(newCategory.getName())) {
return categoryMapper.toCategoryDTO(category);
categoryDTO = categoryMapper.toCategoryDTO(category);
} else {
return categoryMapper.toCategoryDTO(repository.save(categoryMapper.toCategory(newCategory)));
categoryDTO = categoryMapper.toCategoryDTO(repository.save(categoryMapper.toCategory(newCategory)));
}


log.info("Category is updated: {}", categoryDTO);
return categoryDTO;
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ru.practicum.Category.Service.Public;
package ru.practicum.category.service.open;

import ru.practicum.Category.DTO.CategoryDTO;
import ru.practicum.category.dto.CategoryDTO;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
package ru.practicum.Category.Service.Public;
package ru.practicum.category.service.open;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import ru.practicum.Category.DTO.CategoryDTO;
import ru.practicum.Category.Mapper.CategoryMapper;
import ru.practicum.Category.Model.Category;
import ru.practicum.Category.Repository.CategoryRepository;
import ru.practicum.Exception.NotFoundException;
import ru.practicum.category.dto.CategoryDTO;
import ru.practicum.category.mapper.CategoryMapper;
import ru.practicum.category.model.Category;
import ru.practicum.category.repository.CategoryRepository;
import ru.practicum.exception.NotFoundException;

import java.util.List;

@Service
@RequiredArgsConstructor
@Slf4j
public class CategoryPublicServiceImpl implements CategoryPublicService {
private final CategoryRepository repository;
private final CategoryMapper categoryMapper;
Expand All @@ -24,15 +26,16 @@ public class CategoryPublicServiceImpl implements CategoryPublicService {
public CategoryDTO getCategory(Integer catId) {
Category category = repository.findById(catId)
.orElseThrow(() -> new NotFoundException("Category with id " + catId + " not found"));
return categoryMapper.toCategoryDTO(category);
CategoryDTO categoryDTO = categoryMapper.toCategoryDTO(category);
log.info("Category is found: {}", categoryDTO);
return categoryDTO;
}



@Override
public List<CategoryDTO> getCategories(Integer from, Integer size) {
Pageable pageable = PageRequest.of(from, size, Sort.by("id").ascending());
Page<Category> categories = repository.findAll(pageable);
log.info("Found categories are sent");
return categories.getContent().stream()
.map(categoryMapper::toCategoryDTO)
.toList();
Expand Down
Loading