IndexZero fb6c4e58d0 - Added Entrance DTO
- Added pagination to GET requests
- Added API docs with Swagger
- Impelemted security
2025-02-19 12:37:26 +03:00

49 lines
2.2 KiB
Java

package com.indexzero.finals.service.impl;
import com.indexzero.finals.dto.EntranceDTO;
import com.indexzero.finals.entity.Employee;
import com.indexzero.finals.entity.Entrance;
import com.indexzero.finals.repository.EmployeeRepository;
import com.indexzero.finals.repository.EntranceRepository;
import com.indexzero.finals.service.EntranceService;
import com.indexzero.finals.util.EntranceMapper;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class EntranceServiceImpl implements EntranceService {
private final EmployeeRepository employeeRepository;
private final EntranceRepository entranceRepository;
public EntranceServiceImpl(EmployeeRepository employeeRepository, EntranceRepository entranceRepository) {
this.employeeRepository = employeeRepository;
this.entranceRepository = entranceRepository;
}
@Override
public ResponseEntity<Page<EntranceDTO>> getEmployeeEntrances(Pageable pageable, Authentication auth) {
Employee employee = employeeRepository.findByLogin(auth.getName());
System.out.println(employee.getEntrances().stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList()));
List<EntranceDTO> entrances = employee.getEntrances().stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList());
Page<EntranceDTO> page = new PageImpl<>(entrances, pageable, entrances.size());
return new ResponseEntity<>(page, HttpStatus.OK);
}
@Override
public ResponseEntity<Page<EntranceDTO>> getAllEntrances(Pageable pageable) {
List<Entrance> entrances = entranceRepository.findAll();
List<EntranceDTO> entrancesdto = entrances.stream().map(EntranceMapper::convertToDTO).collect(Collectors.toList());
Page<EntranceDTO> page = new PageImpl<>(entrancesdto, pageable, entrances.size());
return new ResponseEntity<>(page, HttpStatus.OK);
}
}