コード例 #1
0
 def getMessageVariantById(campaignId, variantId):
     endpoint = IrisHelper.constructUrl('getmessagevariant').replace('{campaignId}', str(campaignId)).replace(
         '{variantId}',
         variantId)
     response = Utils.makeRequest(url=endpoint, data='', auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(), method='GET')
     return IrisHelper.constructResponse(response)
コード例 #2
0
    def getObjectives():
        campaignObjectivesEndpoint = IrisHelper.constructUrl('campaignobjectives')

        response = Utils.makeRequest(url=campaignObjectivesEndpoint, data='',
                                 auth=IrisHelper.constructAuthenticate(),
                                 headers=IrisHelper.constructHeaders(), method='GET')
        return {'RESPONSE': IrisHelper.constructResponse(response)}
コード例 #3
0
 def create(campaignType, testControlType, payload=None, startDate=None, endDate=None, description=None,
            testControlPercentage=None, name=None, updateNode=False, lockNode=False):
     if not CreateCampaign.checkCampaignAvialable(campaignType, testControlType) or updateNode:
         endpoint = IrisHelper.constructUrl('createcampaign')
         payload = CreateCampaign.constructPayload(campaignType, startDate, endDate, description, testControlType,
                                                   testControlPercentage, name) if payload is None else payload
         response = IrisHelper.constructResponse(
             Utils.makeRequest(url=endpoint, data=payload, auth=IrisHelper.constructAuthenticate(),
                               headers=IrisHelper.constructHeaders(), method='POST')
         )
         if response['statusCode'] == 200:
             CreateCampaign.validateCreateCampaign(response)
             if not lockNode: CreateCampaign.updateNodeCampaign(campaignType, testControlType,
                                                                response['json']['entity']['campaignId'],
                                                                payload['name'], payload)
             if campaignType == 'LAPSED': time.sleep(25)  # Wait to make Campaign Lapsed
             return {
                 'ID': response['json']['entity']['campaignId'],
                 'NAME': payload['name'],
                 'PAYLOAD': payload
             }
         else:
             return {
                 'RESPONSE': response,
                 'PAYLOAD': payload
             }
     else:
         return constant.config['node'][campaignType][testControlType]['CAMPAIGN']
コード例 #4
0
 def getMessageAll(campaignId, queryParam=[]):
     endpoint = IrisHelper.constructUrl('getmessage', queryParam=queryParam).replace('{campaignId}',
                                                                                     str(campaignId)).replace(
         '{messageId}',
         '')
     response = Utils.makeRequest(url=endpoint, data='', auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(), method='GET')
     return IrisHelper.constructResponse(response)
コード例 #5
0
 def checkExists(campaignName):
     checkExistsEndpoint = IrisHelper.constructUrl(
         'checkcampaignexists').replace('{name}', campaignName)
     response = Utils.makeRequest(url=checkExistsEndpoint,
                                  data='',
                                  auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(),
                                  method='GET')
     return IrisHelper.constructResponse(response)
コード例 #6
0
 def getOnboardingStatus(orgId):
     orgOnboardingStatusEndpoint = IrisHelper.constructUrl(
         'orgonboadringstatus').replace('{orgId}', orgId)
     response = Utils.makeRequest(url=orgOnboardingStatusEndpoint,
                                  data='',
                                  auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(),
                                  method='GET')
     return {'RESPONSE': IrisHelper.constructResponse(response)}
コード例 #7
0
    def getOrgV2Status():
        orgStatusEndpoint = IrisHelper.constructUrl('orgv2status')

        response = Utils.makeRequest(url=orgStatusEndpoint,
                                     data='',
                                     auth=IrisHelper.constructAuthenticate(),
                                     headers=IrisHelper.constructHeaders(),
                                     method='GET')
        return {'RESPONSE': IrisHelper.constructResponse(response)}
コード例 #8
0
 def approveWithCampaignAndMessageId(campaignId, messageId):
     endPoint = IrisHelper.constructUrl('approvemessage').replace(
         '{campaignId}', str(campaignId)).replace('{msgId}', messageId)
     return IrisHelper.constructResponse(
         Utils.makeRequest(url=endPoint,
                           data=None,
                           auth=IrisHelper.constructAuthenticate(),
                           headers=IrisHelper.constructHeaders(),
                           method='POST'))
コード例 #9
0
ファイル: createMessage.py プロジェクト: anupsl/pyApps
 def start(campaignId, messageId):
     endpoint = IrisHelper.constructUrl('startmessage').replace(
         '{campaignId}', str(campaignId)).replace('{msgId}', messageId)
     response = IrisHelper.constructResponse(
         Utils.makeRequest(url=endpoint,
                           data='',
                           auth=IrisHelper.constructAuthenticate(),
                           headers=IrisHelper.constructHeaders(),
                           method='POST'))
     return response
コード例 #10
0
ファイル: preCheck.py プロジェクト: anupsl/pyApps
 def executePrecheck(campaignId, messageId, checkVariant=True):
     if checkVariant: PreCheck.checkVariantIsClosed(messageId)
     endpoint = IrisHelper.constructUrl('precheck').replace(
         '{campaignId}', str(campaignId)).replace('{messageId}', messageId)
     response = Utils.makeRequest(url=endpoint,
                                  data='',
                                  auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(),
                                  method='GET')
     return IrisHelper.constructResponse(response)
コード例 #11
0
 def getAll(queryParam):
     endpoint = IrisHelper.constructUrl('getById',
                                        queryParam=queryParam).replace(
                                            '{group_id}', '')
     response = Utils.makeRequest(url=endpoint,
                                  data='',
                                  auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(),
                                  method='GET')
     return IrisHelper.constructResponse(response)
コード例 #12
0
 def getLevelsForDimension(category):
     endpoint = IrisHelper.constructUrl('productcategory').replace(
         '{category}', category)
     response = IrisHelper.constructResponse(
         Utils.makeRequest(url=endpoint,
                           data='',
                           auth=IrisHelper.constructAuthenticate(),
                           headers=IrisHelper.constructHeaders(),
                           method='GET'))
     return response
コード例 #13
0
 def getLevelValuesForDimension(urlSubstringForDimension, levelName):
     endpoint = IrisHelper.constructUrl('productlevel').replace(
         '{urlSubstringForDimension}',
         urlSubstringForDimension).replace('{levelName}', levelName)
     response = IrisHelper.constructResponse(
         Utils.makeRequest(url=endpoint,
                           data='',
                           auth=IrisHelper.constructAuthenticate(),
                           headers=IrisHelper.constructHeaders(),
                           method='GET'))
     return response
コード例 #14
0
 def edit(campaignInfo,editInfo):
     payload = copy.deepcopy(campaignInfo['PAYLOAD'])
     payload.update(editInfo)
     endpoint = IrisHelper.constructUrl('editcampaign').replace('{campaignId}',str(campaignInfo['ID']))
     response = IrisHelper.constructResponse(
         Utils.makeRequest(url=endpoint, data=payload, auth=IrisHelper.constructAuthenticate(),
                           headers=IrisHelper.constructHeaders(), method='PUT')
     )
     return {
         'PAYLOAD':payload,
         'RESPONSE' : response
     }
コード例 #15
0
ファイル: createMessage.py プロジェクト: anupsl/pyApps
 def edit(campaignId, messageId, payload, editInfo=None):
     endpoint = IrisHelper.constructUrl('editmessage').replace(
         '{campaignId}', str(campaignId)).replace('{msgId}', messageId)
     if editInfo is not None:
         payload.update(editInfo)
     response = IrisHelper.constructResponse(
         Utils.makeRequest(url=endpoint,
                           data=payload,
                           auth=IrisHelper.constructAuthenticate(),
                           headers=IrisHelper.constructHeaders(),
                           method='PUT'))
     return {'RESPONSE': response, 'PAYLOAD': payload}
コード例 #16
0
ファイル: campaignSetting.py プロジェクト: anupsl/pyApps
 def updateSettings(self, updateInfo={}):
     campaignSettingsEndpoint = IrisHelper.constructUrl('campaignSettings')
     payload = CampaignSetting.constructUploadPayload(updateInfo)
     response = Utils.makeRequest(
         url=campaignSettingsEndpoint,
         data=payload,
         auth=IrisHelper.constructAuthenticate(),
         headers=IrisHelper.constructHeadersPatch(),
         method='PATCH')
     return {
         'RESPONSE': IrisHelper.constructResponse(response),
         'PAYLOAD': payload
     }
コード例 #17
0
ファイル: campaignSetting.py プロジェクト: anupsl/pyApps
    def settings(self, settingInfo={}, popField=None):
        Logger.log('Setting Info :', settingInfo)
        campaignSettingsEndpoint = IrisHelper.constructUrl('campaignSettings')
        payload = CampaignSetting.constructPayloadSetting(
            settingInfo, popField)
        response = Utils.makeRequest(url=campaignSettingsEndpoint,
                                     data=payload,
                                     auth=IrisHelper.constructAuthenticate(),
                                     headers=IrisHelper.constructHeaders(),
                                     method='POST')

        return {
            'RESPONSE': IrisHelper.constructResponse(response),
            'PAYLOAD': payload
        }
コード例 #18
0
ファイル: testPreview.py プロジェクト: anupsl/pyApps
    def create(campaignType, testControlType, channel, numberOfIdentifiers, numberOfCustomTag=0, campaignId=None,
               payload=None,
               messageBody=None,
               couponEnabled=None,
               pointsEnabled=None):
        campaignInfo = CreateCampaign.create(campaignType, testControlType)
        campaignId = campaignInfo['ID'] if campaignId is None else campaignId
        endPoint = IrisHelper.constructUrl('testpreview').replace('{campaignId}', str(campaignId))
        payload = TestPreview.createPayload(campaignType, testControlType, channel, numberOfIdentifiers,
                                            numberOfCustomTag=numberOfCustomTag,
                                            messageBody=messageBody,
                                            couponEnabled=couponEnabled,
                                            pointsEnabled=pointsEnabled) if payload is None else payload

        response = IrisHelper.constructResponse(
            Utils.makeRequest(url=endPoint, data=payload, auth=IrisHelper.constructAuthenticate(),
                              headers=IrisHelper.constructHeaders(), method='POST')
        )
        return response, payload
コード例 #19
0
 def getLoyaltyProgram():
     endpoint = IrisHelper.constructUrl('loyaltyprogram')
     response = IrisHelper.constructResponse(
             Utils.makeRequest(url=endpoint, data='', auth=IrisHelper.constructAuthenticate(),
                               headers=IrisHelper.constructHeaders(), method='GET'))
     return (response)
コード例 #20
0
    def approve(campaignType,
                testControlType,
                listType,
                channel,
                messageInfo={},
                messageCreateResponse=None,
                listInfo=None,
                campaignId=None,
                newUser=True,
                messageType='OUTBOUND',
                payload=None,
                targetAudience=None,
                scheduleType=None,
                messageStrategy=None,
                messageContent=None,
                updateNode=False,
                lockNode=False,
                storeType='REGISTERED_STORE',
                derivedListInfo=None,
                couponSeriesId=None):
        messageCreateResponse = CreateMessage.create(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo=messageInfo,
            listInfo=listInfo,
            campaignId=campaignId,
            newUser=newUser,
            messageType=messageType,
            payload=payload,
            targetAudience=targetAudience,
            scheduleType=scheduleType,
            messageStrategy=messageStrategy,
            messageContent=messageContent,
            updateNode=updateNode,
            lockNode=lockNode,
            storeType=storeType,
            derivedListInfo=derivedListInfo,
            couponSeriesId=couponSeriesId
        ) if messageCreateResponse is None else messageCreateResponse

        if messageCreateResponse['RESPONSE']['statusCode'] == 200:
            campaignId = constant.config['node'][campaignType][testControlType][
                'CAMPAIGN']['ID'] if campaignId is None else campaignId
            messageId = constant.config['node'][campaignType][testControlType][
                'LIST'][listType][channel]['MESSAGE'][
                    messageInfo['scheduleType']['type']][messageInfo[
                        'offerType']]['RESPONSE']['json']['entity'][
                            'id'] if messageCreateResponse is None else messageCreateResponse[
                                'RESPONSE']['json']['entity']['id']

            Logger.log(
                'Message Execution for CampaignType :{} , testsControlType :{} , listType :{} , channel :{} , SchedulleType :{} , offerType :{} with CampaignId :{} and messageId :{}'
                .format(campaignType, testControlType, listType, channel,
                        messageInfo['scheduleType'], messageInfo['offerType'],
                        campaignId, messageId))
            variantJobName = 'PERSONALIZED_VARIANT_CREATION' if messageInfo[
                'messageStrategy'][
                    'type'] == 'PERSONALISATION' else 'VARIANT_CREATION'
            if not message_calls().waitForJobDetailsStatusToClose(
                    messageId, variantJobName):
                raise Exception('VariantNotCreatedException')

            endPoint = IrisHelper.constructUrl('approvemessage').replace(
                '{campaignId}', str(campaignId)).replace('{msgId}', messageId)
            response = IrisHelper.constructResponse(
                Utils.makeRequest(url=endPoint,
                                  data=payload,
                                  auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(),
                                  method='POST'))
            if response['statusCode'] == 200 and messageCreateResponse is None:
                constant.config['node'][campaignType][testControlType]['LIST'][
                    listType][channel]['MESSAGE'][
                        messageInfo['scheduleType']['type']][messageInfo[
                            'offerType']]['RESPONSE']['EXECUTED'] = True
            return response
        else:
            raise Exception('Failed To Create Message Exception')
コード例 #21
0
 def getByOrgId(queryParam,entity=False):
     endpoint = IrisHelper.constructUrl('monitoringbyorgid', queryParam=queryParam)
     response = Utils.makeRequest(url=endpoint, data='', auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(), method='GET')
     return GetMonitoringDetails.constructMonitorStatusResponse(IrisHelper.constructResponse(response)['json'],byCampaignId=entity)
コード例 #22
0
ファイル: createMessage.py プロジェクト: anupsl/pyApps
    def create(campaignType,
               testControlType,
               listType,
               channel,
               messageInfo={},
               listInfo=None,
               campaignId=None,
               newUser=True,
               messageType='OUTBOUND',
               payload=None,
               targetAudience=None,
               scheduleType=None,
               messageStrategy=None,
               messageContent=None,
               updateNode=False,
               lockNode=False,
               storeType='REGISTERED_STORE',
               numberOfCustomTag=0,
               derivedListInfo=None,
               maxUser=[],
               remindParams=None,
               couponSeriesId=None):
        if not CreateMessage.checkMessageAvialable(
                campaignType, testControlType, listType, channel,
                messageInfo['scheduleType']['type'],
                messageInfo['offerType']) or updateNode:
            campaignInfo = CreateCampaign.create(campaignType, testControlType)
            listInfo = CreateMessage.getListInfo(
                campaignType, testControlType, listType, channel, newUser,
                derivedListInfo) if listInfo is None else listInfo
            if listType == 'REMIND':
                if 'parentMessageId' not in remindParams and remindParams[
                        'parentMessageId'] is None and 'reminderStrategy' not in remindParams and remindParams[
                            'reminderStrategy'] is None:
                    raise Exception('RequiredParamsMissingToConstructReminder')
                targetAudience = {
                    'isDef':
                    True,
                    'includeDefinition': {
                        'defType': 'parentMsgReminder',
                        'parentMessageId': remindParams['parentMessageId'],
                        'reminderStrategy': remindParams['reminderStrategy']
                    },
                    'orgUsers': [] if 'orgUsers' not in remindParams else
                    remindParams['orgUsers']
                }
            if listType == 'ORG_USERS':
                targetAudience = {
                    'include': [constant.config['FilterListID']],
                    'orgUsers': [listInfo['ID']],
                    'exclude': []
                }
            campaignId = str(
                campaignInfo['ID']) if campaignId is None else campaignId
            endPoint = IrisHelper.constructUrl('createmessage').replace(
                '{campaignId}', str(campaignId))
            payload = CreateMessage.constructPayload(
                campaignType,
                testControlType,
                messageInfo,
                listInfo,
                channel,
                messageType,
                numberOfCustomTag=numberOfCustomTag,
                targetAudience=targetAudience,
                scheduleType=scheduleType,
                messageStrategy=messageStrategy,
                messageContent=messageContent,
                storeType=storeType,
                maxUser=maxUser,
                remindParams=remindParams,
                couponSeriesId=couponSeriesId) if payload is None else payload
            Logger.log(
                'Final Payload Used to Create Message :{}'.format(payload))
            if campaignType == 'UPCOMING' and messageInfo['scheduleType'][
                    'type'] == 'IMMEDIATE':
                for _ in range(30):
                    Logger.log(
                        'Upcoming Campaign , is not Yet Live current time :{} and startDate of Campaign is :{}'
                        .format(int(time.time() * 1000),
                                campaignInfo['PAYLOAD']['startDate']))
                    if campaignInfo['PAYLOAD']['startDate'] > int(
                            time.time() * 1000):
                        time.sleep(5)
                    else:
                        break
            timeout = 30 if remindParams is None else 180
            response = IrisHelper.constructResponse(
                Utils.makeRequest(url=endPoint,
                                  data=payload,
                                  auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(),
                                  timeout=timeout,
                                  method='POST'))

            if response['statusCode'] == 200:
                CreateMessage.validateCreateMessageResponse(response)
                if not lockNode:
                    CreateMessage.updateMessageNode(
                        campaignType, testControlType, listType, channel,
                        messageInfo['scheduleType']['type'],
                        messageInfo['offerType'], response, payload)
                if campaignType == 'LAPSED': time.sleep(2 * 60)
                return {'PAYLOAD': payload, 'RESPONSE': response}
            else:
                return {'RESPONSE': response, 'PAYLOAD': payload}
        else:
            return constant.config['node'][campaignType][testControlType][
                'LIST'][listType][channel]['MESSAGE']
            [messageInfo['scheduleType']['type']][messageInfo['offerType']]
コード例 #23
0
 def getByMessageId(campaignId,messageId,queryParam):
     endpoint = IrisHelper.constructUrl('monitoringbymessageid', queryParam=queryParam).format(campaignId,messageId)
     response = Utils.makeRequest(url=endpoint, data='', auth=IrisHelper.constructAuthenticate(),
                                  headers=IrisHelper.constructHeaders(), method='GET')
     return GetMonitoringDetails.constructMonitorStatusResponse(IrisHelper.constructResponse(response)['json'])