def getEffectiveDateParam(self, sParamName = None): """ Gets the effective date parameter. Returns a timestamp suitable for database and url parameters. Returns None if not found or empty. The first call with sParamName set to None will set the internal _tsNow value upon successfull return. """ sName = sParamName if sParamName is not None else WuiDispatcherBase.ksParamEffectiveDate if sName not in self._dParams: return None; if sName not in self._asCheckedParams: self._asCheckedParams.append(sName); sValue = self._dParams[sName]; if isinstance(sValue, list): raise WuiException('%s parameter "%s" is given multiple times: %s' % (self._sAction, sName, sValue)); sValue = sValue.strip(); if sValue == '': return None; # # Timestamp, just validate it and return. # if sValue[0] not in ['-', '+']: (sValue, sError) = ModelDataBase.validateTs(sValue); if sError is not None: raise WuiException('%s parameter "%s" ("%s") is invalid: %s' % (self._sAction, sName, sValue, sError)); if sParamName is None and self._tsNow is None: self._tsNow = sValue; return sValue; # # Relative timestamp. Validate and convert it to a fixed timestamp. # chSign = sValue[0]; (sValue, sError) = ModelDataBase.validateTs(sValue[1:]); if sError is not None: raise WuiException('%s parameter "%s" ("%s") is invalid: %s' % (self._sAction, sName, sValue, sError)); if sValue[-6] in ['-', '+']: raise WuiException('%s parameter "%s" ("%s") is a relative timestamp but incorrectly includes a time zone.' % (self._sAction, sName, sValue)); offTime = 11; if sValue[offTime - 1] != ' ': raise WuiException('%s parameter "%s" ("%s") incorrect format.' % (self._sAction, sName, sValue)); sInterval = 'P' + sValue[:(offTime - 1)] + 'T' + sValue[offTime:]; self._oDb.execute('SELECT CURRENT_TIMESTAMP ' + chSign + ' \'' + sInterval + '\'::INTERVAL'); oDate = self._oDb.fetchOne()[0]; sValue = str(oDate); if sParamName is None and self._tsNow is None: self._tsNow = sValue; return sValue;
def getEffectiveDateParam(self, sParamName = None): """ Gets the effective date parameter. Returns a timestamp suitable for database and url parameters. Returns None if not found or empty. The first call with sParamName set to None will set the internal _tsNow value upon successfull return. """ sName = sParamName if sParamName is not None else WuiDispatcherBase.ksParamEffectiveDate if sName not in self._dParams: return None; if sName not in self._asCheckedParams: self._asCheckedParams.append(sName); sValue = self._dParams[sName]; if isinstance(sValue, list): raise WuiException('%s parameter "%s" is given multiple times: %s' % (self._sAction, sName, sValue)); sValue = sValue.strip(); if sValue == '': return None; # # Timestamp, just validate it and return. # if sValue[0] not in ['-', '+']: (sValue, sError) = ModelDataBase.validateTs(sValue); if sError is not None: raise WuiException('%s parameter "%s" ("%s") is invalid: %s' % (self._sAction, sName, sValue, sError)); if sParamName is None and self._tsNow is None: self._tsNow = sValue; return sValue; # # Relative timestamp. Validate and convert it to a fixed timestamp. # chSign = sValue[0]; (sValue, sError) = ModelDataBase.validateTs(sValue[1:]); if sError is not None: raise WuiException('%s parameter "%s" ("%s") is invalid: %s' % (self._sAction, sName, sValue, sError)); if sValue[-6] in ['-', '+']: raise WuiException('%s parameter "%s" ("%s") is a relative timestamp but incorrectly includes a time zone.' % (self._sAction, sName, sValue)); offTime = 11; if sValue[offTime - 1] != ' ': raise WuiException('%s parameter "%s" ("%s") incorrect format.' % (self._sAction, sName, sValue)); sInterval = 'P' + sValue[:(offTime - 1)] + 'T' + sValue[offTime:]; self._oDb.execute('SELECT CURRENT_TIMESTAMP ' + chSign + ' \'' + sInterval + '\'::INTERVAL'); oDate = self._oDb.fetchOne()[0]; sValue = str(oDate); if sParamName is None and self._tsNow is None: self._tsNow = sValue; return sValue;
def getEffectiveDateParam(self, sParamName=None): """ Gets the effective date parameter. Returns a timestamp suitable for database and url parameters. Returns None if not found or empty. """ sName = sParamName if sParamName is not None else WuiDispatcherBase.ksParamEffectiveDate if sName not in self._dParams: return None if sName not in self._asCheckedParams: self._asCheckedParams.append(sName) sValue = self._dParams[sName] if isinstance(sValue, list): raise WuiException('%s parameter "%s" is given multiple times: %s' % (self._sAction, sName, sValue)) sValue = sValue.strip() if sValue == "": return None # # Timestamp, just validate it and return. # if sValue[0] not in ["-", "+"]: (sValue, sError) = ModelDataBase.validateTs(sValue) if sError is not None: raise WuiException('%s parameter "%s" ("%s") is invalid: %s' % (self._sAction, sName, sValue, sError)) return sValue # # Relative timestamp. Validate and convert it to a fixed timestamp. # chSign = sValue[0] (sValue, sError) = ModelDataBase.validateTs(sValue[1:]) if sError is not None: raise WuiException('%s parameter "%s" ("%s") is invalid: %s' % (self._sAction, sName, sValue, sError)) if sValue[-6] in ["-", "+"]: raise WuiException( '%s parameter "%s" ("%s") is a relative timestamp but incorrectly includes a time zone.' % (self._sAction, sName, sValue) ) offTime = 11 if sValue[offTime - 1] != " ": raise WuiException('%s parameter "%s" ("%s") incorrect format.' % (self._sAction, sName, sValue)) sInterval = "P" + sValue[: (offTime - 1)] + "T" + sValue[offTime:] self._oDb.execute("SELECT CURRENT_TIMESTAMP " + chSign + " '" + sInterval + "'::INTERVAL") oDate = self._oDb.fetchOne()[0] return str(oDate)
def getTsParam(self, sName, tsDefault=None, fRequired=True): """ Gets a timestamp parameter. Raises exception if not found and fRequired is True. """ if fRequired is False and sName not in self._dParams: return tsDefault sValue = self.getStringParam(sName, None, None if tsDefault is None else str(tsDefault)) (sValue, sError) = ModelDataBase.validateTs(sValue) if sError is not None: raise WuiException('%s parameter %s value "%s": %s' % (self._sAction, sName, sValue, sError)) return sValue
def getTsParam(self, sName, tsDefault = None, fRequired = True): """ Gets a timestamp parameter. Raises exception if not found and fRequired is True. """ if fRequired is False and sName not in self._dParams: return tsDefault; sValue = self.getStringParam(sName, None, None if tsDefault is None else str(tsDefault)); (sValue, sError) = ModelDataBase.validateTs(sValue); if sError is not None: raise WuiException('%s parameter %s value "%s": %s' % (self._sAction, sName, sValue, sError)); return sValue;