blob: 45844cb392693fe81d8896a1811f92ca0565657d [file] [log] [blame]
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();
}
}