def getActivity(id:Long):Action[AnyContent] = API.secureAsync { (user, request) =>
val offset:Int = request.queryString.get("offset").getOrElse(20)
val limit:Int = request.queryString.get("limit").getOrElse(0)
val sortBy:String = request.queryString.get("sortBy").getOrElse("activityTime")
val sortDir:String = request.queryString.get("sortDir").getOrElse("desc")
val activityTypeIds:Seq[Long] = request.queryString.get("activityTypeId").getOrElse(Seq())
Survey.readWithId(id).map { survey =>
if (user.isAnyAdmin || user.isAnySubscriber(survey.subscriptionId)) {
val activityLogPage:Future[(Seq[ActivityLog], Int)] = activityLog.search("survey", id, activityTypeIds, limit, offset)
activityLogPage.map { ap =>
Ok(Json.obj(
"activity" -> ap._1.map(_.adminJson),
"totalCount" -> ap._2,
"limit" -> limit,
"offset" -> offset
)) as JSON
}
} //else notAllowedTo("see this surveys's activity")
} //getOrElse notAllowedTo("see this survey's activity")
}