Удален контроллер Visits за ненадобностью. Добавлен функционал счиатывания кода
This commit is contained in:
parent
61b23d9afb
commit
ae3b001d8f
@ -2,8 +2,10 @@ package com.example.onomatopoeiaback;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
|
||||
|
||||
@SpringBootApplication
|
||||
// отключаем стандартную шизанастройку в spring security
|
||||
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class })
|
||||
public class OnomatopoeiaBackApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
@ -11,6 +11,8 @@ import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/employee")
|
||||
public class EmployeeController {
|
||||
@ -37,9 +39,18 @@ public class EmployeeController {
|
||||
return new ResponseEntity<>(null, employeeService.auth(username));
|
||||
}
|
||||
|
||||
@GetMapping("/{username}/visits")
|
||||
public ResponseEntity<List<Visit>> visits(
|
||||
@PathVariable String username,
|
||||
@RequestParam Integer offset,
|
||||
@RequestParam Integer limit
|
||||
) {
|
||||
return ResponseEntity.ok(employeeService.getVisits(username, offset, limit));
|
||||
}
|
||||
|
||||
@PatchMapping("/{username}/open")
|
||||
public ResponseEntity<Visit> open(@PathVariable String username, @RequestBody VisitDTO visitDTO) {
|
||||
visitService.open(username, visitDTO);
|
||||
visitService.register(username, visitDTO);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.example.onomatopoeiaback.controller;
|
||||
import com.example.onomatopoeiaback.domain.qrcode.QrCode;
|
||||
import com.example.onomatopoeiaback.service.QrCodeService;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -17,6 +18,7 @@ public class QrCodeController {
|
||||
this.qrCodeService = qrCodeService;
|
||||
}
|
||||
|
||||
@PostMapping("/create")
|
||||
public ResponseEntity<QrCode> createQrCode(@RequestParam String name) {
|
||||
return ResponseEntity.ok(qrCodeService.createQrCode(name));
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.example.onomatopoeiaback.domain.employee;
|
||||
|
||||
import com.example.onomatopoeiaback.domain.visit.Visit;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
@ -7,6 +8,8 @@ import lombok.NonNull;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Table(name = "employee")
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.example.onomatopoeiaback.domain.visit;
|
||||
|
||||
import com.example.onomatopoeiaback.domain.employee.Employee;
|
||||
import com.example.onomatopoeiaback.domain.qrcode.QrCode;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
@ -23,4 +24,6 @@ public class Visit {
|
||||
private VisitType visitType;
|
||||
@NonNull
|
||||
private LocalDateTime visitTime;
|
||||
@ManyToOne
|
||||
private Employee employee;
|
||||
}
|
||||
|
@ -1,7 +1,12 @@
|
||||
package com.example.onomatopoeiaback.repository;
|
||||
|
||||
import com.example.onomatopoeiaback.domain.qrcode.QrCode;
|
||||
import lombok.NonNull;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public interface QrCodeRepository extends JpaRepository<QrCode, Long> {
|
||||
@NonNull
|
||||
Optional<QrCode> findById(@NonNull Long id);
|
||||
}
|
||||
|
@ -6,5 +6,4 @@ import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface VisitRepository extends JpaRepository<Visit, Long> {
|
||||
Visit getVisitByValue(long value);
|
||||
}
|
||||
|
@ -2,7 +2,9 @@ package com.example.onomatopoeiaback.service;
|
||||
|
||||
import com.example.onomatopoeiaback.domain.employee.Employee;
|
||||
import com.example.onomatopoeiaback.domain.employee.EmployeeDTO;
|
||||
import com.example.onomatopoeiaback.domain.visit.Visit;
|
||||
import com.example.onomatopoeiaback.repository.EmployeeRepository;
|
||||
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
@ -10,6 +12,8 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class EmployeeService {
|
||||
@ -58,4 +62,9 @@ public class EmployeeService {
|
||||
|
||||
return new ResponseEntity<>(employee, response_status);
|
||||
}
|
||||
|
||||
public List<Visit> getVisits(String login, Integer offset, Integer limit) {
|
||||
Employee employee = employeeRepository.getEmployeesByLogin(login);
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,22 @@
|
||||
package com.example.onomatopoeiaback.service;
|
||||
|
||||
import com.example.onomatopoeiaback.domain.qrcode.QrCode;
|
||||
import com.example.onomatopoeiaback.repository.QrCodeRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class QrCodeService {
|
||||
final
|
||||
QrCodeRepository qrCodeRepository;
|
||||
|
||||
public QrCodeService(QrCodeRepository qrCodeRepository) {
|
||||
this.qrCodeRepository = qrCodeRepository;
|
||||
}
|
||||
|
||||
public QrCode createQrCode(String name) {
|
||||
QrCode qrCode = new QrCode();
|
||||
qrCode.setName(name);
|
||||
return qrCode;
|
||||
return qrCodeRepository.saveAndFlush(qrCode);
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.example.onomatopoeiaback.service;
|
||||
|
||||
|
||||
import com.example.onomatopoeiaback.domain.employee.Employee;
|
||||
import com.example.onomatopoeiaback.domain.qrcode.QrCode;
|
||||
import com.example.onomatopoeiaback.domain.visit.Visit;
|
||||
import com.example.onomatopoeiaback.domain.visit.VisitDTO;
|
||||
import com.example.onomatopoeiaback.exceptions.BadRequestException;
|
||||
@ -13,6 +14,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class VisitService {
|
||||
@ -27,25 +29,24 @@ public class VisitService {
|
||||
this.qrCodeRepository = qrCodeRepository;
|
||||
}
|
||||
|
||||
// TDDO: удалить это. и оставить open и доработать его. После этого объект Visit добавить пользователю в массив посещений. Реализовать получение посещений с offset и limit. Реализовать авторизацию и разделение методов на роли.
|
||||
public Visit create(VisitDTO visitDTO) {
|
||||
Visit visit = new Visit();
|
||||
visit.setQrCode(qrCodeRepository.getReferenceById(visitDTO.getQrCodeId()));
|
||||
visit.setVisitType(visitDTO.getVisitType());
|
||||
return visitRepository.saveAndFlush(visit);
|
||||
}
|
||||
|
||||
public void open(String login, VisitDTO visitDTO) {
|
||||
Visit visit = visitRepository.getVisitByValue(visitDTO.getValue());
|
||||
public void register(String login, VisitDTO visitDTO) {
|
||||
Employee employee = employeeRepository.getEmployeesByLogin(login);
|
||||
Optional<QrCode> qrCodeOptional = qrCodeRepository.findById(visitDTO.getQrCodeId());
|
||||
if (qrCodeOptional.isEmpty()) {
|
||||
throw new BadRequestException();
|
||||
}
|
||||
|
||||
if (employee == null) {
|
||||
throw new UnauthorizedException();
|
||||
}
|
||||
else if (visit == null) {
|
||||
throw new BadRequestException();
|
||||
}
|
||||
|
||||
QrCode qrCode = qrCodeOptional.get();
|
||||
Visit visit = new Visit();
|
||||
visit.setQrCode(qrCode);
|
||||
visit.setVisitType(visitDTO.getVisitType());
|
||||
visit.setEmployee(employee);
|
||||
visitRepository.saveAndFlush(visit);
|
||||
LocalDateTime localDateTime = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS);
|
||||
employee.setLastVisit(localDateTime);
|
||||
employeeRepository.saveAndFlush(employee);
|
||||
|
@ -6,6 +6,6 @@ spring-doc.swagger-ui.path=/docs
|
||||
# postgres set up
|
||||
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
|
||||
spring.datasource.username=postgres
|
||||
spring.datasource.password=1339
|
||||
spring.datasource.password=MobileDev
|
||||
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
|
||||
spring.jpa.hibernate.ddl-auto=update
|
Loading…
x
Reference in New Issue
Block a user