func convertModelToDtos(ds *m.DataSource) dtos.DataSource { dto := dtos.DataSource{ Id: ds.Id, OrgId: ds.OrgId, Name: ds.Name, Url: ds.Url, Type: ds.Type, Access: ds.Access, Password: ds.Password, Database: ds.Database, User: ds.User, BasicAuth: ds.BasicAuth, BasicAuthUser: ds.BasicAuthUser, BasicAuthPassword: ds.BasicAuthPassword, WithCredentials: ds.WithCredentials, IsDefault: ds.IsDefault, JsonData: ds.JsonData, } if len(ds.SecureJsonData) > 0 { dto.TLSAuth.CACertSet = len(ds.SecureJsonData["tlsCACert"]) > 0 dto.TLSAuth.ClientCertSet = len(ds.SecureJsonData["tlsClientCert"]) > 0 dto.TLSAuth.ClientKeySet = len(ds.SecureJsonData["tlsClientKey"]) > 0 } for k, v := range ds.SecureJsonData { if len(v) > 0 { dto.EncryptedFields = append(dto.EncryptedFields, k) } } return dto }
func GetDataSources(c *middleware.Context) { query := m.GetDataSourcesQuery{OrgId: c.OrgId} if err := bus.Dispatch(&query); err != nil { c.JsonApiErr(500, "Failed to query datasources", err) return } result := make(dtos.DataSourceList, 0) for _, ds := range query.Result { dsItem := dtos.DataSource{ Id: ds.Id, OrgId: ds.OrgId, Name: ds.Name, Url: ds.Url, Type: ds.Type, Access: ds.Access, Password: ds.Password, Database: ds.Database, User: ds.User, BasicAuth: ds.BasicAuth, IsDefault: ds.IsDefault, JsonData: ds.JsonData, } if plugin, exists := plugins.DataSources[ds.Type]; exists { dsItem.TypeLogoUrl = plugin.Info.Logos.Small } else { dsItem.TypeLogoUrl = "public/img/icn-datasource.svg" } result = append(result, dsItem) } sort.Sort(result) c.JSON(200, result) }