UNPKG

2.85 kBJavaScriptView Raw
1/**
2 * @licence
3 * MOST Web Framework
4 * A JavaScript Web Framework
5 * http://themost.io
6 *
7 * Copyright (c) 2014, Kyriakos Barbounakis k.barbounakis@gmail.com, Anthi Oikonomou anthioikonomou@gmail.com
8 *
9 * Released under the BSD3-Clause license
10 * Date: 2014-11-10
11 *
12 */
13///
14var LangUtils = require('@themost/common/utils').LangUtils;
15var Q = require('q');
16var _ = require('lodash');
17var HttpResult = require('./mvc').HttpResult;
18var ODataModelConventionBuilder = require('@themost/data/odata').ODataConventionModelBuilder;
19var ODataModelBuilder = require('@themost/data/odata').ODataModelBuilder;
20var DataConfiguration = require('@themost/data/data-configuration').DataConfiguration;
21
22/**
23 * @class
24 * @constructor
25 * @param {*=} data
26 * @extends {HttpResult}
27 * @property {EntitySetConfiguration} entitySet
28 */
29function ODataJsonResult(data) {
30 ODataJsonResult.super_.bind(this)();
31 this.data = data;
32 this.contentType = 'application/json;charset=utf-8';
33 this.contentEncoding = 'utf8';
34}
35LangUtils.inherits(ODataJsonResult,HttpResult);
36
37ODataJsonResult.prototype.execute = function(context, callback) {
38 var res = context.response;
39 if (_.isNil(this.data)) {
40 res.writeHead(204);
41 return callback();
42 }
43};
44
45/**
46 * @class
47 * @constructor
48 */
49function ODataModelBuilderConfiguration() {
50 //
51}
52
53/**
54 *
55 * @param {HttpApplication} app
56 * @returns Promise<ODataModelBuilder|TypeError>
57 */
58ODataModelBuilderConfiguration.config = function(app) {
59 if (typeof app === 'undefined' || app === null) {
60 return Q.reject(new TypeError('Application may not be null'))
61 }
62 //create by default a new model convention builder
63 var builder = new ODataModelConventionBuilder(new DataConfiguration(app.getConfigurationPath()));
64 //initialize builder
65 return builder.initialize().then(function() {
66 //register service
67 app.useStrategy(ODataModelBuilder, function() {
68 return builder;
69 });
70 //return newly created builder for further processing
71 return Q.resolve(builder);
72 });
73};
74
75ODataModelBuilderConfiguration.configSync = function(app) {
76 if (typeof app === 'undefined' || app === null) {
77 return Q.reject(new TypeError('Application may not be null'))
78 }
79 //create by default a new model convention builder
80 var builder = new ODataModelConventionBuilder(new DataConfiguration(app.getConfigurationPath()));
81 //initialize builder
82 builder.initializeSync();
83 //register service
84 app.useStrategy(ODataModelBuilder, function() {
85 return builder;
86 });
87 //return newly created builder for further processing
88 return builder;
89};
90
91if (typeof module !== 'undefined') {
92 module.exports.ODataModelBuilderConfiguration = ODataModelBuilderConfiguration;
93 module.exports.ODataJsonResult = ODataJsonResult;
94}