- Você tem que ter uma instância de Notícias e uma de Repositório de Mídias.
- A migração vai criar uma mídia na instância de mídias para cada imagem que receber (seja no corpo, seja nesses campos separados).
---- Para isso, usar a entidade lumis.service.media.Media.
Source<?> mediaSource = SourceFactory.createSource("default", serviceInstanceIdRepositorioMedia);
String media = mediaSource.addData(
Maps.builder().put("mediaFile", fileAdd.getId()).put("title", fileAdd.getName()).put("type", 0)
.put(ContentTableSource.TRANSITION_PARAMETER_NAME, "authoring.approve").build())
.getItemId();
---- Repare que para criar a mídia, precisa antes adicionar um File no portal (campo Media.mediaFile). Para isso, usar lumis.portal.file.IFileManager.add(SessionConfig sessionConfig, String name, File file, String contentType, String serviceInstanceId, ITransaction transaction) (passando a instância de Mídia no parâmetro serviceInstanceId).
FileConfig fileAdd = ManagerFactory.getFileManager().add(sessionConfig,
Utils.nomeArquivoImagem(urlFile), file, "image/jpeg", serviceInstanceIdRepositorioMedia,
transaction);
- Criar a notícia na instância de notícias usando o Source dela (criar o Source com lumis.doui.source.SourceFactory.createSource(String, String)), chamando lumis.doui.source.Source.addData(Object) passando os valores adequados para cada campo.
Source<?> newsSource = SourceFactory.createSource("default", serviceInstanceIdNewsGlobal);
String newsId = newsSource
.addData(Maps.builder().put("title", record.get("name"))
.put("introduction", record.get("stretch")).put("introductionImage", small_image_id)
.put("content", StringEscapeUtils.unescapeHtml((String) record.get("description")))
.put("publishStartDate", Utils.formataDataCompleta((String) record.get("date")))
.put("highlight", ((String) record.get("highlighted")) == "no" ? 0 : 1)
.put("contentImage", big_image_id)
.put(ContentTableSource.TRANSITION_PARAMETER_NAME,
Utils.fromTo(Integer.toString((Integer) record.get("published"))))
.build())
.getItemId();