vulcain-corejs
Version:
Vulcain micro-service framework
60 lines (58 loc) • 1.74 kB
JavaScript
/**
* This class provide a way to customize the http response.
*
* @export
* @class HttpResponse
*/
class HttpResponse {
constructor() {
this.headers = new Map();
this.statusCode = 200;
}
/**
* Add a custom header value to the response
*
* @param {string} name
* @param {string} value
*/
addHeader(name, value) {
this.headers.set(name, value);
}
}
exports.HttpResponse = HttpResponse;
class HttpRedirectResponse extends HttpResponse {
constructor(url) {
super();
if (!url)
throw new Error("Url is required");
this.statusCode = 302;
this.addHeader("Location", url);
}
}
exports.HttpRedirectResponse = HttpRedirectResponse;
class HandlerFactory {
static obfuscateSensibleData(domain, container, result) {
if (result) {
if (Array.isArray(result)) {
let outputSchema;
result.forEach(v => {
if (v.__schema) {
if (!outputSchema || outputSchema.name !== v.__schema)
outputSchema = domain.getSchema(v.__schema);
if (outputSchema && outputSchema.description.hasSensibleData)
domain.obfuscate(v, outputSchema);
}
});
}
else if (result.__schema) {
let outputSchema = domain.getSchema(result.__schema);
if (outputSchema && outputSchema.description.hasSensibleData)
domain.obfuscate(result, outputSchema);
}
}
return result;
}
}
exports.HandlerFactory = HandlerFactory;
//# sourceMappingURL=common.js.map
;