b4960411f214e8e3d7eb45b76d0e11b229c5c360
[osm/UI.git] / skyquake / plugins / composer / src / src / libraries / model / DescriptorModelSerializer.js
1 /*
2 *
3 * Copyright 2016 RIFT.IO Inc
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 */
18 /**
19 * Created by onvelocity on 10/20/15.
20 */
21
22 import DescriptorModelMetaFactory from './DescriptorModelMetaFactory'
23
24 const DescriptorModelSerializer = {
25 /**
26 * Create a json object that can be sent to the backend. I.e. CONFD JSON compliant to the schema definition.
27 *
28 * @param {any} model - the data blob from the editor. This is not modified.
29 * @returns cleansed data model
30 */
31 serialize(model) {
32 if (!model.uiState) {
33 console.error('model uiState null', model);
34 return {};
35 }
36 const path = model.uiState['qualified-type'] || model.uiState['type'];
37 const metaModel = DescriptorModelMetaFactory.getModelMetaForType(path);
38 const data = {};
39 const name = model.uiState['type'];
40 data[name] = model; // lets get the meta hierachy from the top
41 const result = metaModel.serialize(data);
42 console.debug(result);
43 return result;
44 }
45 }
46 export default DescriptorModelSerializer;