@zoranwong/acc-engine.js
Version:
A javascript framework to accelerate your applicatin developement
215 lines (184 loc) • 5.92 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _Application = _interopRequireDefault(require("../../foundation/Application"));
var _Response = _interopRequireDefault(require("./Response"));
var _UriParamParseMiddleware = _interopRequireDefault(require("./UriParamParseMiddleware"));
var _ValidateMiddleware = _interopRequireDefault(require("./ValidateMiddleware"));
var _HttpMethod = _interopRequireDefault(require("./HttpMethod"));
var _HttpRequestOption = _interopRequireWildcard(require("./HttpRequestOption"));
var _underscore = require("underscore");
var Request = /*#__PURE__*/function () {
/**@property Application _app*/
/**
* @param HttpRequestOption options
* */
function Request() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
(0, _classCallCheck2["default"])(this, Request);
this._headers = {};
this._data = {};
this._uri = '';
this._name = null;
this._method = _HttpMethod["default"].GET;
this._middleware = [_ValidateMiddleware["default"], _UriParamParseMiddleware["default"]];
this._responseClass = null;
this._app = void 0;
this._validator = void 0;
this._app = _Application["default"].getInstance();
this._validator = this._app.get('validator');
this._name = this.constructor.name;
if (arguments.length === 1 && options && (0, _HttpRequestOption.instanceOfHttpRequestOptions)(options)) {
for (var key in options) {
if (options[key] && typeof this["_".concat(key)] !== 'undefined') {
if (key !== 'middleware') this["_".concat(key)] = options[key];else this._middleware.concat((0, _underscore.isArray)(options['middleware']) ? options['middleware'] : [options['middleware']]);
}
}
}
}
(0, _createClass2["default"])(Request, [{
key: "getHeaders",
value: function () {
var _getHeaders = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", this._headers);
case 1:
case "end":
return _context.stop();
}
}
}, _callee, this);
}));
function getHeaders() {
return _getHeaders.apply(this, arguments);
}
return getHeaders;
}()
}, {
key: "rules",
value: function rules() {
return {};
}
}, {
key: "messages",
value: function messages() {
return {};
}
}, {
key: "passed",
value: function passed() {
return this._validator.validate(this);
}
}, {
key: "errors",
value: function errors() {
return this._validator.errors;
}
}, {
key: "setHeader",
value: function setHeader(name, value) {
this._headers[name] = value;
return this;
}
}, {
key: "getHeader",
value: function getHeader(name) {
return this._headers[name];
}
}, {
key: "method",
get: function get() {
return this._method.toUpperCase();
}
}, {
key: "responseClass",
get: function get() {
return this._responseClass;
}
}, {
key: "headers",
get: function get() {
return this._headers;
}
}, {
key: "data",
get: function get() {
return this._data;
}
}, {
key: "uri",
get: function get() {
return this._uri;
}
}, {
key: "middleware",
get: function get() {
return this._middleware;
}
}, {
key: "name",
get: function get() {
return this._name;
}
/**
* @return {Application}
* */
}, {
key: "app",
get: function get() {
return this._app;
}
}, {
key: "httpClient",
get: function get() {
return this.app.http;
}
}], [{
key: "send",
value: function () {
var _send = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
var _len,
params,
_key,
request,
_args2 = arguments;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
for (_len = _args2.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
params[_key] = _args2[_key];
}
request = (0, _construct2["default"])(this, params); // console.log(request, '==========', params);
_context2.next = 4;
return request.httpClient.send(request, request._responseClass);
case 4:
return _context2.abrupt("return", _context2.sent);
case 5:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
function send() {
return _send.apply(this, arguments);
}
return send;
}()
}]);
return Request;
}();
exports["default"] = Request;