Доработка бека
This commit is contained in:
@@ -44,6 +44,7 @@ public class AuthController {
|
|||||||
Visitor visitor = visitorsRepository.findById(Long.valueOf(decodeArr[0]))
|
Visitor visitor = visitorsRepository.findById(Long.valueOf(decodeArr[0]))
|
||||||
.orElseThrow();
|
.orElseThrow();
|
||||||
|
|
||||||
|
log.info("Попытка авторизации пользователя {}", visitor.getId());
|
||||||
Integer visitorCode = visitor.getCode();
|
Integer visitorCode = visitor.getCode();
|
||||||
if (visitorCode == null) {
|
if (visitorCode == null) {
|
||||||
return new AuthResponseDto(null, "Повторите запрос кода из бота");
|
return new AuthResponseDto(null, "Повторите запрос кода из бота");
|
||||||
@@ -66,6 +67,7 @@ public class AuthController {
|
|||||||
return new AuthResponseDto(null, "Не найдет пользователь " + login);
|
return new AuthResponseDto(null, "Не найдет пользователь " + login);
|
||||||
}
|
}
|
||||||
Visitor visitor = visitorOpt.get();
|
Visitor visitor = visitorOpt.get();
|
||||||
|
log.info("Попытка авторизации пользователя {}", visitor.getId());
|
||||||
if (passwordEncoder.matches(password, visitor.getPassword())) {
|
if (passwordEncoder.matches(password, visitor.getPassword())) {
|
||||||
return new AuthResponseDto(jwtTokenProvider.generateToken(visitor), null);
|
return new AuthResponseDto(jwtTokenProvider.generateToken(visitor), null);
|
||||||
} else {
|
} else {
|
||||||
@@ -77,6 +79,7 @@ public class AuthController {
|
|||||||
public AuthResponseDto refreshToken(@RequestHeader("Authorization") String token) {
|
public AuthResponseDto refreshToken(@RequestHeader("Authorization") String token) {
|
||||||
Claims claims = jwtTokenProvider.extractAllClaims(token);
|
Claims claims = jwtTokenProvider.extractAllClaims(token);
|
||||||
Long visitorId = claims.get("id", Long.class);
|
Long visitorId = claims.get("id", Long.class);
|
||||||
|
log.info("обновление токена для пользователя {}", visitorId);
|
||||||
Visitor visitor = visitorsRepository.findById(visitorId).orElseThrow();
|
Visitor visitor = visitorsRepository.findById(visitorId).orElseThrow();
|
||||||
return new AuthResponseDto(jwtTokenProvider.generateToken(visitor), null);
|
return new AuthResponseDto(jwtTokenProvider.generateToken(visitor), null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package ru.kayashov.bar.controller;
|
|||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.hibernate.Session;
|
||||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PatchMapping;
|
import org.springframework.web.bind.annotation.PatchMapping;
|
||||||
@@ -10,14 +11,13 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import ru.kayashov.bar.controller.dto.SessionResponseDto;
|
||||||
|
import ru.kayashov.bar.controller.dto.VisitorResponseDto;
|
||||||
import ru.kayashov.bar.controller.dto.bar.BarResponseDto;
|
import ru.kayashov.bar.controller.dto.bar.BarResponseDto;
|
||||||
import ru.kayashov.bar.controller.dto.bar.CategoryResponseDto;
|
import ru.kayashov.bar.controller.dto.bar.CategoryResponseDto;
|
||||||
import ru.kayashov.bar.controller.dto.bar.GlassResponseDto;
|
import ru.kayashov.bar.controller.dto.bar.GlassResponseDto;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.ReceiptResponseDto;
|
|
||||||
import ru.kayashov.bar.controller.dto.SessionResponseDto;
|
|
||||||
import ru.kayashov.bar.controller.dto.bar.TagResponseDto;
|
import ru.kayashov.bar.controller.dto.bar.TagResponseDto;
|
||||||
import ru.kayashov.bar.controller.dto.VisitorResponseDto;
|
import ru.kayashov.bar.controller.dto.cocktail.ReceiptResponseDto;
|
||||||
import ru.kayashov.bar.model.entity.BarEntity;
|
|
||||||
import ru.kayashov.bar.model.entity.BarResident;
|
import ru.kayashov.bar.model.entity.BarResident;
|
||||||
import ru.kayashov.bar.model.entity.SessionEntity;
|
import ru.kayashov.bar.model.entity.SessionEntity;
|
||||||
import ru.kayashov.bar.model.entity.Unit;
|
import ru.kayashov.bar.model.entity.Unit;
|
||||||
@@ -105,12 +105,14 @@ public class BarController {
|
|||||||
@PostMapping("session")
|
@PostMapping("session")
|
||||||
public void changeSessionStatus(@RequestParam Boolean value) {
|
public void changeSessionStatus(@RequestParam Boolean value) {
|
||||||
if (value) {
|
if (value) {
|
||||||
sessionService.createEmptySession();
|
SessionEntity entity = sessionService.createEmptySession();
|
||||||
|
log.info("Открыта смена {}", entity.getId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
SessionEntity session = sessionService.findActiveSession();
|
SessionEntity session = sessionService.findActiveSession();
|
||||||
session.setIsActive(false);
|
session.setIsActive(false);
|
||||||
sessionRepository.save(session);
|
sessionRepository.save(session);
|
||||||
|
log.info("Закрыта смена {}", session.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/getMe")
|
@GetMapping("/getMe")
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailFilterRequestDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailFilterRequestDto;
|
||||||
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailForIngredientModalDto;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto;
|
||||||
import ru.kayashov.bar.controller.dto.ErrorDto;
|
import ru.kayashov.bar.controller.dto.ErrorDto;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto;
|
||||||
@@ -43,6 +44,16 @@ public class CocktailController {
|
|||||||
return cocktailService.getMenu(dto);
|
return cocktailService.getMenu(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/instructions")
|
||||||
|
public String getInstructions(@RequestParam Long id) {
|
||||||
|
return cocktailService.findInstructions(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/byIngredient")
|
||||||
|
public List<CocktailForIngredientModalDto> getByIngredient(@RequestParam Long id) {
|
||||||
|
return cocktailService.findByIngredient(id);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/photo")
|
@PostMapping("/photo")
|
||||||
public String savePhoto(@RequestBody MultipartFile file) throws IOException {
|
public String savePhoto(@RequestBody MultipartFile file) throws IOException {
|
||||||
if(file == null) {
|
if(file == null) {
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package ru.kayashov.bar.controller.dto.cocktail;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class CocktailForIngredientModalDto {
|
||||||
|
private Long id;
|
||||||
|
private String name;
|
||||||
|
private RatingResponseDto rating;
|
||||||
|
private String image;
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailForIngredientModalDto;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto;
|
||||||
import ru.kayashov.bar.controller.dto.ingredient.IngredientSimpleResponseDto;
|
import ru.kayashov.bar.controller.dto.ingredient.IngredientSimpleResponseDto;
|
||||||
@@ -224,4 +225,13 @@ public class CocktailMapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public CocktailForIngredientModalDto cocktailToIngredientDtoList(CocktailEntity e) {
|
||||||
|
Visitor visitor = getCurrentVisitor();
|
||||||
|
return CocktailForIngredientModalDto.builder()
|
||||||
|
.id(e.getId())
|
||||||
|
.name(e.getName())
|
||||||
|
.image(e.getImage())
|
||||||
|
.rating(createRatingDto(e.getRating(), visitor))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ import org.springframework.security.core.context.SecurityContextHolder;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
import ru.kayashov.bar.controller.IngredientController;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailFilterRequestDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailFilterRequestDto;
|
||||||
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailForIngredientModalDto;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto;
|
||||||
import ru.kayashov.bar.controller.dto.cocktail.CocktailSimpleResponseDto;
|
import ru.kayashov.bar.controller.dto.cocktail.CocktailSimpleResponseDto;
|
||||||
@@ -473,4 +475,19 @@ public class CocktailService {
|
|||||||
log.info("Удален коктейль {}", cocktail);
|
log.info("Удален коктейль {}", cocktail);
|
||||||
repository.delete(cocktail);
|
repository.delete(cocktail);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String findInstructions(Long id) {
|
||||||
|
CocktailEntity cocktail = repository.findById(id).orElseThrow(RuntimeException::new);
|
||||||
|
return cocktail.getInstructions();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CocktailForIngredientModalDto> findByIngredient(Long id) {
|
||||||
|
return ingredientRepository.findById(id).orElseThrow(RuntimeException::new)
|
||||||
|
.getReceipts()
|
||||||
|
.stream()
|
||||||
|
.map(ReceiptEntity::getCocktail)
|
||||||
|
.distinct()
|
||||||
|
.map(mapper::cocktailToIngredientDtoList)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ spring.datasource.driver-class-name=org.postgresql.Driver
|
|||||||
spring.datasource.url=${DB_URL:jdbc:postgresql://192.168.1.100:5432/drinks}
|
spring.datasource.url=${DB_URL:jdbc:postgresql://192.168.1.100:5432/drinks}
|
||||||
spring.datasource.username=${DB_NAME:nextcloud}
|
spring.datasource.username=${DB_NAME:nextcloud}
|
||||||
spring.datasource.password=${DB_PASSWORD:kayash73}
|
spring.datasource.password=${DB_PASSWORD:kayash73}
|
||||||
spring.datasource.hikari.minimum-idle=1
|
spring.datasource.hikari.minimum-idle=10
|
||||||
|
spring.datasource.hikari.maximum-pool-size=50
|
||||||
spring.datasource.hikari.idle-timeout=30000
|
spring.datasource.hikari.idle-timeout=30000
|
||||||
spring.datasource.hikari.max-lifetime=600000
|
spring.datasource.hikari.max-lifetime=600000
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user