in app/controllers/Api.scala [272:314]
private def stackExtractor(i: IndexedItemWithStack) =
i.stack.map(Json.toJson(_))
private def stageExtractor(i: IndexedItemWithStage) =
i.stage.map(Json.toJson(_))
def roleList = summary[Instance](
prismDataStore.instanceAgent,
i => i.role.map(Json.toJson(_)),
"roles"
)
def mainclassList = summary[Instance](
prismDataStore.instanceAgent,
i => i.mainclasses.map(Json.toJson(_)),
"mainclasses"
)
def stackList = summaryFromTwo[Instance, Lambda](
prismDataStore.instanceAgent,
stackExtractor,
prismDataStore.lambdaAgent,
stackExtractor,
"stacks"
)(prismConfiguration.stages.ordering)
def stageList = summaryFromTwo[Instance, Lambda](
prismDataStore.instanceAgent,
stageExtractor,
prismDataStore.lambdaAgent,
stageExtractor,
"stages"
)(prismConfiguration.stages.ordering)
def regionList = summary[Instance](
prismDataStore.instanceAgent,
i => Some(Json.toJson(i.region)),
"regions"
)
def vendorList = summary[Instance](
prismDataStore.instanceAgent,
i => Some(Json.toJson(i.vendor)),
"vendors"
)
private def appListExtractor(i: IndexedItemWithCoreTags) = i.app.flatMap {
app =>
i.stack.map(stack => Json.toJson(Map("stack" -> stack, "app" -> app)))
}