Quando tento chamar a função da service, aparece o seguinte erro: Unresolved reference: buscarPorId
Quando tento chamar a função da service, aparece o seguinte erro: Unresolved reference: buscarPorId
Oi Mariana,
Posta aqui como ficou o seu codigo
package br.com.alura.Alura.service
import br.com.alura.Alura.Dto.NovoTopico import br.com.alura.Alura.model.Curso import br.com.alura.Alura.model.Topico import br.com.alura.Alura.model.Usuario import org.springframework.stereotype.Service import org.springframework.web.bind.annotation.RequestBody import java.util.*
@Service class TopicoService (private var topicos: List){
init {
val topico = Topico(
id = 1,
titulo = "Duvida Kotlin",
mensagem = "listas em Kotlin",
curso = Curso(
id = 1,
nome = "Kotlin",
categoria = "programação"
),
autor = Usuario(
id = 1,
nome = "Gabriela Guimarães",
email = "gabiguim@email.com"
)
)
val topico2 = Topico(
id = 2,
titulo = "Duvida Java",
mensagem = "listas em Java",
curso = Curso(
id = 1,
nome = "Java",
categoria = "programação"
),
autor = Usuario(
id = 1,
nome = "Gabriela Guimarães",
email = "gabiguim@email.com"
)
)
val topico3 = Topico(
id = 3,
titulo = "Duvida Angular",
mensagem = "Responsividade",
curso = Curso(
id = 1,
nome = "Angular",
categoria = "programação"
),
autor = Usuario(
id = 1,
nome = "Gabriela Guimarães",
email = "gabiguim@email.com"
)
)
topicos = Arrays.asList(topico, topico2, topico3)
}
fun listar(): List<Topico>{
return topicos
}
fun listarPorId(id: Long): Topico {
return topicos.stream().filter({
t -> t.id == id
}).findFirst().get()
}
fun cadastrar(@RequestBody dto: NovoTopico){
val novoTopico = Topico(
id = topicos.size.toLong() + 1,
titulo = dto.titulo,
mensagem = dto.mensagem,
curso = CursoService.buscarPorId(dto.idCurso)
)
}
}
Pelo seu código você declarou a função com o nome listarPorId e não buscarPorId. Por isso o erro ocorre.
As funções listarPorId e buscarPorId não tem ligação. A função buscarPorId está sendo chamada da service abaixo, mas não compila.
package br.com.alura.Alura.service
import br.com.alura.Alura.model.Curso import org.springframework.stereotype.Service import java.util.*
@Service class CursoService(private var cursos : List) { init { val curso1 = Curso( id = 1, nome = "Kotlin", categoria = "Programação" ) val curso2 = Curso( id = 2, nome = "Java", categoria = "Programação" ) val curso3 = Curso( id = 3, nome = "Angular", categoria = "Programação" )
cursos = Arrays.asList(curso1, curso2, curso3)
}
fun buscarPorId(id: Long): Curso {
return cursos.stream().filter { c ->
c.id == id
}.findFirst().get()
}
}
Posta aqui o codigo completo dos seus controllers e services