| package pl.hackerspace.controller; |
| |
| import jakarta.servlet.http.HttpServletResponse; |
| import lombok.RequiredArgsConstructor; |
| import org.springframework.core.io.Resource; |
| import org.springframework.http.ResponseEntity; |
| import org.springframework.web.bind.annotation.*; |
| import pl.hackerspace.domain.Client; |
| import pl.hackerspace.domain.Invoice; |
| import pl.hackerspace.dto.InvoiceGenerationDto; |
| import pl.hackerspace.service.InvoiceService; |
| |
| import java.io.IOException; |
| import java.util.List; |
| |
| @RestController |
| @RequestMapping("/invoices") |
| @RequiredArgsConstructor |
| @CrossOrigin(value = {"*"}, exposedHeaders = {"Content-Disposition"}) |
| public class InvoicesController { |
| |
| private final InvoiceService invoiceService; |
| |
| @PostMapping |
| @ResponseBody |
| public ResponseEntity<Resource> generateSingleInvoice(@RequestBody InvoiceGenerationDto request) |
| throws IOException { |
| return invoiceService.generateNewInvoice(request); |
| } |
| |
| @GetMapping("/all") |
| @ResponseBody |
| public void generateAllSubscriberInvoices(HttpServletResponse response, @RequestParam String monthOfInvoice) |
| throws IOException { |
| invoiceService.generateInvoicesForAllSubscribers(response, monthOfInvoice); |
| } |
| |
| @GetMapping |
| public List<Invoice> getInvoices() { |
| return invoiceService.findAll(); |
| } |
| } |