Пример #1
0
  def test_putShortURL(self):
    testTime = datetime.datetime.now(pytz.timezone("UTC"))
    appObj.setTestingDateTime(testTime)

    loginSession = LoginUtilities.getUserLoginSession("TESTTenantName", 1)
    resultJSON = self.putUrl(
      loginSession=loginSession,
      tenantName="TESTTenantName",
      url=targetUrl,
      checkAndParseResponse=True
    )

    self.assertTrue(resultJSON["shortURL"].startswith(TestHelperSuperClass.env["APIAPP_REDIRECTPREFIX"] + "/"))
    self.assertEqual(len(resultJSON["shortURL"]), len(TestHelperSuperClass.env["APIAPP_REDIRECTPREFIX"]) + 1 + 5)
    self.assertEqual(len(resultJSON["id"]), 5)
    self.assertNotEqual(resultJSON[RepositoryObjBaseClass.getMetadataElementKey()]["creationDateTime"], None)

    dt = parse(resultJSON[RepositoryObjBaseClass.getMetadataElementKey()]["creationDateTime"])
    creationTime = dt.astimezone(pytz.utc)
    expectedExpireTime =  creationTime + datetime.timedelta(days=int(TestHelperSuperClass.env["APIAPP_URLEXPIREDAYS"]))
    self.assertEqual(resultJSON["expectedExpire"],expectedExpireTime.isoformat())

    reditectToUrl, result = self.getRedirectUrlUSINGPUBLICAPI(
      shortURL=resultJSON["shortURL"]
    )
    self.assertEqual(reditectToUrl, targetUrl)

    resultGetJSON = self.getUrlByCode(
      loginSession=loginSession,
      tenantName="TESTTenantName",
      urlCode=resultJSON["id"],
      checkAndParseResponse=True
    )
    self.assertEqual(resultGetJSON, resultJSON)
Пример #2
0
def putResponseNewShortUrlModel(appObj):
  return appObj.flastRestPlusAPIObject.model('putResponseNewShortUrl', {
    'id': fields.String(default='', description='Short Code for this URL'),
    'shortURL': fields.String(default='', description='Short URL for this URL'),
    'expectedExpire': fields.DateTime(dt_format=u'iso8601', description='Date url was created'),
    'targetUrl': fields.String(default='', description='Url to redirect to'),
    RepositoryObjBaseClass.getMetadataElementKey(): fields.Nested(RepositoryObjBaseClass.getMetadataModel(appObj, flaskrestplusfields=fields))
  })
Пример #3
0
def getAPIKeyModel(appObj):
  return appObj.flastRestPlusAPIObject.model('APIKeyModel', {
    'id': fields.String(default='DEFAULT', description='Unique identifier of APIKey'),
    'tenantName': fields.String(default='DEFAULT', description='Name of the Tenant this APIKey associated with'),
    'createdByUserID': fields.String(default='DEFAULT', description='UserGUID of user who created this ticket'),
    'restrictedRoles': fields.List(fields.String(default=None,description='If not an empty list a subset of the users roles to be inherited by this APIKey'),required=True),
    'externalData': fields.Raw(description='Any other data supplied during apikey creation', required=True),
    RepositoryObjBaseClass.getMetadataElementKey(): fields.Nested(RepositoryObjBaseClass.getMetadataModel(appObj, flaskrestplusfields=fields))
  })
Пример #4
0
 def getUserDict(self):
   # dict returned to user who owns this shorturl
   d = self.getDict()
   return {
     "id": d["id"],
     "shortURL": d["shortURL"],
     "expectedExpire": d["expectedExpire"],
     "targetUrl": d["targetUrl"],
     RepositoryObjBaseClass.getMetadataElementKey(): d[RepositoryObjBaseClass.getMetadataElementKey()]
   }
def getTicketTypeModel(appObj):
    return appObj.flastRestPlusAPIObject.model(
        'TicketType', {
            'id':
            fields.String(
                default='DEFAULT',
                description='Unique identifier of User from login system'),
            'tenantName':
            fields.String(default='DEFAULT',
                          description='Tenant name for this ticket type'),
            'ticketTypeName':
            fields.String(default='DEFAULT',
                          description='Name displayed on admin screent'),
            'description':
            fields.String(default='DEFAULT',
                          description='Description of ticket type'),
            'enabled':
            fields.Boolean(
                default=False,
                description='Can the ticket type currently be used'),
            'welcomeMessage':
            fields.Nested(getCreateTicketTypeModel_welcomeMessage(appObj),
                          skip_none=True),
            'allowUserCreation':
            fields.Boolean(
                default=False,
                description=
                'Allow unknown logins to create new users when using this ticket.'
            ),
            'issueDuration':
            fields.Integer(
                default=None,
                description='Hours to issue ticket for on creation'),
            'roles':
            fields.List(
                fields.String(
                    default='DEFAULT',
                    description='List of roles this tickert type will assign')
            ),
            'postUseURL':
            fields.String(
                default='DEFAULT',
                description='URL to send user to after ticket is used'),
            'postInvalidURL':
            fields.String(
                default='DEFAULT',
                description=
                'URL to send user to after invalid or request validaiton'),
            RepositoryObjBaseClass.getMetadataElementKey():
            fields.Nested(
                RepositoryObjBaseClass.getMetadataModel(
                    appObj, flaskrestplusfields=fields))
        })
def getTicketWithCaculatedFieldsModel(appObj):
    return appObj.flastRestPlusAPIObject.model(
        'TicketTypeWithCaculated',
        {
            'id':
            fields.String(
                default='DEFAULT',
                description='Unique identifier of Ticket - used in URL'),
            'typeGUID':
            fields.String(
                default='DEFAULT',
                description='Unique identifier of Ticket - used in URL'),
            'expiry':
            fields.DateTime(dt_format=u'iso8601',
                            description='Datetime ticket will expire'),
            'foreignKey':
            fields.String(
                default='DEFAULT',
                description='Unique identifier of Ticket - used in URL'),
            'usedDate':
            fields.DateTime(
                dt_format=u'iso8601',
                description='Datetime ticket was used or none if it wasn\'t'),
            'useWithUserID':
            fields.String(
                default=None,
                description='Unique identifier of Ticket - used in URL'),
            'reissueRequestedDate':
            fields.DateTime(
                dt_format=u'iso8601',
                description='Datetime ticket was reissueRequestedDate'),
            'reissuedTicketID':
            fields.String(
                default=None,
                description='Unique identifier of Ticket - used in URL'),
            'disabled':
            fields.Boolean(default=False,
                           description='Has this ticket been disabled'),
            RepositoryObjBaseClass.getMetadataElementKey():
            fields.Nested(
                RepositoryObjBaseClass.getMetadataModel(
                    appObj, flaskrestplusfields=fields)),
            # Extra below
            'usableState':
            fields.String(default='DEFAULT',
                          description='Usable state of this ticket')
        })
Пример #7
0
 def __init__(self, obj, objVersion, creationDateTime, lastUpdateDateTime, objKey, repositoryObj, storeConnection):
   RepositoryObjBaseClass.__init__(self, obj, objVersion, creationDateTime, lastUpdateDateTime, objKey, repositoryObj)
 def __init__(self, obj, objVersion, creationDateTime, lastUpdateDateTime,
              objKey, repositoryObj, storeConnection):
     RepositoryObjBaseClass.__init__(self, obj, objVersion,
                                     creationDateTime, lastUpdateDateTime,
                                     objKey, repositoryObj)
     self.internalUseIndicator = False