in pkg/admin/handlers/service.go [182:232]
func ServiceDetail(c *gin.Context) {
service := c.Param("service")
group := util.GetGroup(service)
version := util.GetVersion(service)
interfaze := util.GetInterface(service)
providers, err := providerService.FindByService(service)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{
"error": err.Error(),
})
return
}
consumers, err := consumerService.FindByService(service)
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{
"error": err.Error(),
})
return
}
application := ""
if len(providers) > 0 {
application = providers[0].Application
}
identifier := &identifier.MetadataIdentifier{
Application: application,
BaseMetadataIdentifier: identifier.BaseMetadataIdentifier{
ServiceInterface: interfaze,
Version: version,
Group: group,
Side: constant.ProviderSide,
},
}
metadata, _ := config.MetadataReportCenter.GetServiceDefinition(identifier)
typed_meta := definition.ServiceDefinition{}
err = json.Unmarshal([]byte(metadata), &typed_meta)
if err != nil {
logger.Errorf("Error parsing metadata, err msg is %s", err.Error())
}
serviceDetail := &model.ServiceDetailDTO{
Providers: providers,
Consumers: consumers,
Service: service,
Application: application,
Metadata: typed_meta,
}
c.JSON(http.StatusOK, serviceDetail)
}