Я создал маршрут:
post {
path("validate" / Segment / Segment / Segment) { (userId, listId, prefix) =>
parameters('filter.?) { filter =>
def result = (
phoneValidationActor ? ValidateUserList(userId.toInt, listId.toInt, prefix.toUpperCase, filter)
)
complete(result)
}
}
}
И актер
class PhoneNumberActor extends Actor with ActorLogging {
import PhoneNumberActor._
def receive: Receive = {
case ValidateUserList(userId, listId, prefix, filter) =>
sender() ! validateUserList(userId, listId, prefix, filter)
}
}
И функция получения для актера
def validateUserList(user_id: Int, list_id: Int, prefix: String, filter: Option[String]): Future[Seq[PhoneNumber]] = {
val prefixTrim = prefix.trim
val listContact = new ListContactRepository
listContact.getAllContacts(user_id, list_id).map { lines =>
lines.map { line =>
validateNumber(line.phone, prefixTrim)
}
}
}
В маршруте результатанализируется как Future[Any]
вместо Future[Seq[PhoneNumber]]
Нужна помощь для решения этой проблемы