InternetCalendarSubscriptionController.java
package com.tdmconsult.ete.api;
import com.tdmconsult.ete.ical.InternetCalendarSubscriptionService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Tag(name = "Name", description = "Description")
@RestController
@RequestMapping(value = "/icals", produces = "text/calendar; charset=utf-8")
@RequiredArgsConstructor
public class InternetCalendarSubscriptionController {
private final InternetCalendarSubscriptionService internetCalendarSubscriptionService;
@GetMapping("earnings.ics")
public ResponseEntity<String> getEarningsCalendar() {
final var ical = internetCalendarSubscriptionService.getEarningsCalendar();
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType("text/calendar;charset=UTF-8"))
.header(HttpHeaders.CONTENT_DISPOSITION, "inline; filename=\"earnings.ics\"")
.body(ical);
}
}