UNPKG

@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
'use strict'; 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"); };