@sap/xsodata
Version:
Expose data from a HANA database as OData V2 service with help of .xsodata files.
170 lines (156 loc) • 4.99 kB
JavaScript
;
var dbToXml = exports.dbToXml = {};
var converterTools = require('./converterTools');
var Type_Error = require("./../errors/typeError");
dbToXml.DATE = dbToXml.DAYDATE = function dbToXmlDATE(dbValue) {
/*in 9999-12-31*/
/*out Edm.DateTime~~> 1957-06-13T00:00:00.0000000 */
if (dbValue === null) {
return null;
}
return dbValue.substr(0, 4) + "-" + dbValue.substr(5, 2) + "-" + dbValue.substr(8, 2) + "T" + "00:00:00.0000000";
};
dbToXml.TIME = dbToXml.SECONDTIME = function dbToXmlTIME(dbValue) {
/*in "23:59:59"*/
/*out Edm.Time ~~> "PT23H59M59S" */
if (dbValue === null) {
return null;
}
return 'PT' + parseInt(dbValue.substr(0, 2)) + 'H' + parseInt(dbValue.substr(3, 2)) + 'M' + parseInt(dbValue.substr(6, 2)) + 'S';
};
dbToXml.SECONDDATE = function dbToXmlSECONDDATE(dbValue) {
/*in 9999-12-31T23:59:59*/
/*out Edm.DateTime~~> 9999-12-31T23:59:59.0000000 */
if (dbValue === null) {
return null;
}
return converterTools.datetime7(dbValue,true);
};
dbToXml.TIMESTAMP = function dbToXmlTIMESTAMP(dbValue) {
/*in 2011-05-11T12:00:59.999*/
/*out Edm.DateTime~~> 9999-12-31T23:59:59.9990000 */
if (dbValue === null) {
return null;
}
return converterTools.datetime7(dbValue,true);
};
dbToXml.TINYINT = function dbToXmlTINYINT(dbValue) {
/*in 0*/
/*out Edm.Byte~~> 0 */
return dbValue;
};
dbToXml.SMALLINT = function dbToXmlSMALLINT(dbValue) {
/*in -32768*/
/*out Edm.Int16~~> -32768 */
return dbValue;
};
dbToXml.INTEGER = function dbToXmlINTEGER(dbValue) {
/*in -2147483647*/
/*out Edm.Int32~~> -2147483647 */
return dbValue;
};
dbToXml.BIGINT = function dbToXmlBIGINT(dbValue) {
/*in 9223372036854775807*/
/*out Edm.Int64~~> 9223372036854775808l <it an small L at the end */
return dbValue;
};
dbToXml.SMALLDECIMAL = function dbToXmlSMALLDECIMAL(dbValue) {
/*in 1.2e+1*/
/*out Edm.Decimal~~> 12*/
/*SAPINFO xsodata<->xs1: type convertion db to uri: SMALLDECIMAL/Edm.Single is not trunctated*/
return dbValue;
};
dbToXml.DECIMAL = function dbToXmlDECIMAL(dbValue) {
/*in -1.234567890132456789013245678901234e+33*/
/*out Edm.Decimal~~> -1234567890132456789013245678901234*/
/*SAPINFO xsodata<->xs1: type convertion db to uri: SMALLDECIMAL/Edm.Single is not trunctated*/
if (dbValue === null) {
return null;
}
return converterTools.decimal_db_to_uri(dbValue);
};
dbToXml.REAL = function dbToXmlREAL(dbValue) {
/*in -3.4028230607370965e+38*/
/*out Edm.Single~~> -3.4028230607370965e+38*/
return dbValue;
};
dbToXml.DOUBLE = function dbToXmlDOUBLE(dbValue) {
/*in 1.7976931348623157e+308*/
/*out Edm.Single~~> -3.4028230607370965e+38*/
return dbValue;
};
dbToXml.FLOAT = function dbToXmlFLOAT(dbValue) {
/*in -3.4028230607370965e+38*/
/*out Edm.Single~~> -3.4028230607370965e+38*/
return dbValue;
};
dbToXml.VARCHAR = function dbToXmlVARCHAR(dbValue) {
/*in "A VARCHAR"*/
/*out Edm.String~~> "A VARCHAR"*/
return dbValue;
};
dbToXml.NVARCHAR = function dbToXmlNVARCHAR(dbValue) {
/*in "A NVARCHAR"*/
/*out Edm.String~~> "A NVARCHAR"*/
return dbValue;
};
dbToXml.ALPHANUM = function dbToXmlALPHANUM(dbValue) {
/*in "A VARCHAR"*/
/*out Edm.String~~> "A VARCHAR"*/
return dbValue;
};
dbToXml.SHORTTEXT = function dbToXmlSHORTTEXT(dbValue) {
/*in "A VARCHAR"*/
/*out Edm.String~~> "A VARCHAR"*/
return dbValue;
};
dbToXml.CHAR = function dbToXmlCHAR(dbValue) {
/*in "A VARCHAR"*/
/*out Edm.String~~> "A VARCHAR"*/
return dbValue;
};
dbToXml.NCHAR = function dbToXmlNCHAR(dbValue) {
/*in "A NVARCHAR"*/
/*out Edm.String~~> "A NVARCHAR"*/
return dbValue;
};
dbToXml.BLOB = function dbToXmlBLOB(dbValue) {
if (dbValue === null) {
return null;
}
return dbValue.toString('base64');
};
dbToXml.CLOB = function dbToXmlCLOB(dbValue) {
//TODO atom format not supported yet
//var decoder = new StringDecoder('utf8');
//var c = decoder.write(dbValue);
//return "'" + c + "'";
if (dbValue === null) {
return null;
}
return dbValue.toString('utf8');
};
dbToXml.NCLOB = function dbToXmlNCLOB(dbValue) {
//TODO atom format not supported yet
//var decoder = new StringDecoder('utf8');
//var c = decoder.write(dbValue);
//return "'" + c + "'";
if (dbValue === null) {
return null;
}
return dbValue.toString('utf8');
};
dbToXml.BINARY = function dbToXmlBINARY(/*dbValue*/) {
throw new Type_Error("db type BINARY is not supported");
};
dbToXml.VARBINARY = function dbToXmlVARBINARY(dbValue) {
//TODO atom format not supported yet
/* in Buffer object*/
if (dbValue === null) {
return null;
}
return dbValue.toString('base64');
};
dbToXml.LONGDATE = function dbToUriLONGDATE(/*dbValue*/) {
throw new Type_Error("db type LONGDATE is not supported");
};