Skip to content

Commit

Permalink
EP-4276
Browse files Browse the repository at this point in the history
  • Loading branch information
oplekal committed Jul 22, 2024
1 parent 1097b74 commit e703c86
Show file tree
Hide file tree
Showing 10 changed files with 264 additions and 96 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,22 @@ public ResponseEntity<Object> getDokumentti(@ApiIgnore @ModelAttribute("ktId") f
return new ResponseEntity<>(pdfdata, headers, HttpStatus.OK);
}

@RequestMapping(value = "/dokumentti/{dokumenttiId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_PDF_VALUE)
public ResponseEntity<Object> getDokumentti(@PathVariable Long dokumenttiId) {
byte[] pdfdata = dokumenttiService.get(dokumenttiId);

if (pdfdata == null || pdfdata.length == 0) {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}

HttpHeaders headers = new HttpHeaders();
headers.set("Content-disposition", "inline; filename=\"" + dokumenttiId + ".pdf\"");
headers.setContentLength(pdfdata.length);
headers.set("X-Robots-Tag", "noindex");

return new ResponseEntity<>(pdfdata, headers, HttpStatus.OK);
}

@ApiImplicitParams({
@ApiImplicitParam(name = "ktId", dataType = "string", paramType = "path", required = true)
})
Expand Down Expand Up @@ -288,6 +304,14 @@ public ResponseEntity<DokumenttiDto> getJulkaistuDokumentti(@ApiIgnore @ModelAtt
return ResponseEntity.ok(dokumenttiService.getJulkaistuDokumentti(ktId, opsId, Kieli.of(kieli), revision));
}

@RequestMapping(value = "/opetussuunnitelmat/{opsId}/dokumentti/julkaistu", method = RequestMethod.GET)
public ResponseEntity<DokumenttiDto> getJulkaistuDokumenttiWithoutKt(@PathVariable Long opsId,
@RequestParam(defaultValue = "fi") String kieli,
@RequestParam(required = false) Integer revision) {

return ResponseEntity.ok(dokumenttiService.getJulkaistuDokumentti(opsId, Kieli.of(kieli), revision));
}

@ApiImplicitParams({
@ApiImplicitParam(name = "ktId", dataType = "string", paramType = "path", required = true)
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,17 @@ public class JulkaisuController extends KoulutustoimijaIdGetterAbstractControlle
@ApiImplicitParam(name = "ktId", dataType = "string", paramType = "path")
})
@RequestMapping(method = GET, value = "/julkaisut")
public List<JulkaisuBaseDto> getJulkaisut(
public List<JulkaisuBaseDto> getJulkaisutJaViimeisinStatus(
@ModelAttribute("solvedKtId") final Long ktId,
@PathVariable("opsId") final long opsId) {
return julkaisutService.getJulkaisutJaViimeisinStatus(ktId, opsId);
}

@ApiImplicitParams({
@ApiImplicitParam(name = "ktId", dataType = "string", paramType = "path")
})
@RequestMapping(method = GET, value = "/julkaisut/kaikki")
public List<JulkaisuBaseDto> getJulkaisutKaikki(
@ModelAttribute("solvedKtId") final Long ktId,
@PathVariable("opsId") final long opsId) {
return julkaisutService.getJulkaisut(ktId, opsId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,10 @@ public interface DokumenttiService {
void updateDokumenttiPdfData(byte[] pdfData, Long dokumenttiId);

void updateDokumenttiTila(DokumenttiTila tila, Long dokumenttiId);

@PreAuthorize("permitAll()")
DokumenttiDto getJulkaistuDokumentti(Long opsId, Kieli kieli, Integer revision);

@PreAuthorize("permitAll()")
byte[] get(Long id);
}
Original file line number Diff line number Diff line change
Expand Up @@ -234,4 +234,14 @@ public void updateDokumenttiTila(DokumenttiTila tila, Long dokumenttiId) {
dokumentti.setTila(tila);
dokumenttiRepository.save(dokumentti);
}

@Override
public DokumenttiDto getJulkaistuDokumentti(Long opsId, Kieli kieli, Integer revision) {
return getJulkaistuDokumentti(null, opsId, kieli, revision);
}

@Override
public byte[] get(Long id) {
return getDataByDokumenttiId(null, null, id);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
import org.springframework.security.access.prepost.PreAuthorize;

public interface JulkaisuService {
@PreAuthorize("permitAll()")
List<JulkaisuBaseDto> getJulkaisutJaViimeisinStatus(long ktId, long opsId);

@PreAuthorize("permitAll()")
List<JulkaisuBaseDto> getJulkaisut(long ktId, long opsId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import fi.vm.sade.eperusteet.amosaa.service.ops.SisaltoViiteService;
import fi.vm.sade.eperusteet.amosaa.service.ops.SisaltoviiteServiceProvider;
import fi.vm.sade.eperusteet.amosaa.service.util.JsonMapper;
import fi.vm.sade.eperusteet.amosaa.service.util.Nulls;
import fi.vm.sade.eperusteet.amosaa.service.util.Validointi;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
Expand Down Expand Up @@ -121,7 +122,7 @@ public class JulkaisuServiceImpl implements JulkaisuService {

@Override
@Transactional(readOnly = true)
public List<JulkaisuBaseDto> getJulkaisut(long ktIds, long opsId) {
public List<JulkaisuBaseDto> getJulkaisutJaViimeisinStatus(long ktIds, long opsId) {
Opetussuunnitelma opetussuunnitelma = opetussuunnitelmaRepository.findOne(opsId);
if (opetussuunnitelma == null) {
throw new BusinessRuleViolationException("opetussuunnitelmaa-ei-loytynyt");
Expand All @@ -142,6 +143,14 @@ public List<JulkaisuBaseDto> getJulkaisut(long ktIds, long opsId) {
return taytaKayttajaTiedot(julkaisut);
}

@Override
public List<JulkaisuBaseDto> getJulkaisut(long ktId, long opsId) {
Opetussuunnitelma ops = opetussuunnitelmaRepository.findOne(opsId);
Nulls.assertExists(ops, "Pyydettyä opetussuunnitelmaa ei ole olemassa");
List<Julkaisu> julkaisut = julkaisuRepository.findAllByOpetussuunnitelma(ops);
return mapper.mapAsList(julkaisut, JulkaisuBaseDto.class);
}

@Override
public void teeJulkaisu(long ktId, long opsId, JulkaisuBaseDto julkaisuBaseDto) {
Opetussuunnitelma opetussuunnitelma = opetussuunnitelmaRepository.findOne(opsId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public static void setup() {
public void testJulkaisu1() {
useProfileKP1();
OpetussuunnitelmaBaseDto ops = createOpetussuunnitelma();
assertThat(julkaisuService.getJulkaisut(getKoulutustoimijaId(), ops.getId())).isEmpty();
assertThat(julkaisuService.getJulkaisutJaViimeisinStatus(getKoulutustoimijaId(), ops.getId())).isEmpty();

JulkaisuBaseDto julkaisuDto = JulkaisuBaseDto.builder().tiedote(LokalisoituTekstiDto.of("tiedote")).build();
// JulkaisuBaseDto uusiJulkaisu = julkaisuService.teeJulkaisu(getKoulutustoimijaId(), ops.getId(), julkaisuDto);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,14 @@ public void updateDokumenttiPdfData(byte[] pdfData, Long dokumenttiId) {
public void updateDokumenttiTila(DokumenttiTila tila, Long dokumenttiId) {

}

@Override
public DokumenttiDto getJulkaistuDokumentti(Long opsId, Kieli kieli, Integer revision) {
return null;
}

@Override
public byte[] get(Long id) {
return new byte[0];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,15 @@
@Profile("test")
public class JulkaisuServiceMock implements JulkaisuService {
@Override
public List<JulkaisuBaseDto> getJulkaisut(long ktId, long opsId) {
public List<JulkaisuBaseDto> getJulkaisutJaViimeisinStatus(long ktId, long opsId) {
return null;
}

@Override
public List<JulkaisuBaseDto> getJulkaisut(long ktId, long opsId) {
return List.of();
}

@Override
public void teeJulkaisu(long ktId, long opsId, JulkaisuBaseDto julkaisuBaseDto) {
}
Expand Down
Loading

0 comments on commit e703c86

Please sign in to comment.