瀏覽代碼

HUE-8200 [metadata] API to provide properties mapping of custom metadata

For hv_view and hv_table.
Romain Rigaux 7 年之前
父節點
當前提交
5965a29c4a

+ 9 - 0
desktop/libs/metadata/src/metadata/navigator_api.py

@@ -598,3 +598,12 @@ def map_namespace_property(request):
   namespace = api.map_namespace_property(clazz=clazz, properties=properties)
   namespace = api.map_namespace_property(clazz=clazz, properties=properties)
 
 
   return JsonResponse(namespace)
   return JsonResponse(namespace)
+
+
+@error_handler
+def get_model_properties_mapping(request):
+  api = NavigatorApi(request.user)
+
+  namespace = api.get_model_properties_mapping()
+
+  return JsonResponse(namespace)

+ 9 - 0
desktop/libs/metadata/src/metadata/navigator_client.py

@@ -557,6 +557,15 @@ class NavigatorApi(object):
       raise NavigatorApiException(e.message)
       raise NavigatorApiException(e.message)
 
 
 
 
+  def get_model_properties_mapping(self):
+    try:
+      return self._root.get('models/properties/mappings')
+    except RestException, e:
+      msg = 'Failed to get models properties mappings'
+      LOG.error(msg)
+      raise NavigatorApiException(e.message)
+
+
   def _fillup_properties(self):
   def _fillup_properties(self):
     global _HAS_CATALOG_NAMESPACE
     global _HAS_CATALOG_NAMESPACE
 
 

+ 1 - 0
desktop/libs/metadata/src/metadata/urls.py

@@ -35,6 +35,7 @@ urlpatterns = patterns('metadata.navigator_api',
   url(r'^api/navigator/namespace/?$', 'get_namespace', name='get_namespace'),
   url(r'^api/navigator/namespace/?$', 'get_namespace', name='get_namespace'),
   url(r'^api/navigator/namespace/property/create/?$', 'create_namespace_property', name='create_namespace_property'),
   url(r'^api/navigator/namespace/property/create/?$', 'create_namespace_property', name='create_namespace_property'),
   url(r'^api/navigator/namespace/property/map/?$', 'map_namespace_property', name='map_namespace_property'),
   url(r'^api/navigator/namespace/property/map/?$', 'map_namespace_property', name='map_namespace_property'),
+  url(r'^api/navigator/models/properties/mappings/?$', 'get_model_properties_mapping', name='get_model_properties_mapping'),
 )
 )
 
 
 
 

+ 9 - 0
docs/sdk/sdk.md

@@ -997,6 +997,15 @@ How to create a new locale for an app::
 </pre>
 </pre>
 
 
 
 
+### Getting the model mapping of custom metadata
+
+<pre>
+     $.get("/metadata/api/navigator/models/properties/mappings/", function(data) {
+        console.log(ko.mapping.toJSON(data));
+      });
+</pre>
+
+
 ### Getting a namespace
 ### Getting a namespace
 
 
 <pre>
 <pre>