コード例 #1
0
def create(current_user, workspaceId, projectId):
    """
        Create a service. Reuires login
    """
    if request.content_type == 'application/json':
        post_data = request.get_json(force=True)
        required_keys = ['serviceType', 'serviceMeta']
        if all(name in post_data for name in required_keys):

            service = Service(serviceType=post_data.get('serviceType'),
                              serviceMeta=post_data.get('serviceMeta'),
                              projectId=projectId,
                              createdBy=current_user.email_id)

            service.create()

            # add to project
            project = Project.get_by_id(projectId)
            project.services.append(service._id)
            project.save()

            # Replcing _id with id
            service_obj = json.loads(service.to_json())
            service_obj['id'] = service_obj['_id']
            service_obj.pop('_id', None)

            return response_with_obj('success', 'Service created successfully', service_obj, 200)
        else:
            return response('failed', 'Required data not found in POST body.', 402)

    return response('failed', 'Content-type must be json', 402)
コード例 #2
0
def messenger_integration(current_user, workspaceId, projectId):
    page_token = request.get_json(force=True).get('pageToken')
    page_id = request.get_json(force=True).get('pageId')
    page_name = request.get_json(force=True).get('pageName')
    bot_id = request.get_json(force=True).get('botId')
    language_code = request.get_json(force=True).get('languageCode', 'en-US')

    if all([page_token, page_id, page_name, bot_id, language_code]):

        # check if integrations already exist for the facebook page
        existingIntegrations = Service.objects(__raw__={
            'serviceMeta.channelId': str(page_id),
            'serviceMeta.channel': 'messenger',
            'isRemoved': False
        }).count()
        # if integrations exist, disable them
        print("existingIntegrations", existingIntegrations)
        if existingIntegrations:
            service = Service.objects(__raw__={
                'serviceMeta.channelId': str(page_id),
                'serviceMeta.channel': 'messenger',
                'isRemoved': False
            }).first()
            service.isActive = True
            service.save()

            # Replcing _id with id
            service_obj = json.loads(service.to_json())
            service_obj['id'] = service_obj['_id']
            service_obj.pop('_id', None)

            return response_with_obj('success', 'Existing service activated successfully', service_obj, 200)

        else:
            # create new service
            service = Service(serviceType='textChannel',
                              serviceMeta={
                                  'channel': 'messenger',
                                  'channelId': page_id,
                                  'channelName': page_name,
                                  'parentBot': bot_id,
                                  'accessToken': page_token,
                                  'languageCode': language_code
                              },
                              projectId=projectId,
                              createdBy=current_user.email_id)

            service.create()

            # add to project
            project = Project.get_by_id(projectId)
            project.services.append(service._id)
            project.save()

            # Replcing _id with id
            service_obj = json.loads(service.to_json())
            service_obj['id'] = service_obj['_id']
            service_obj.pop('_id', None)

            return response_with_obj('success', 'Service created successfully', service_obj, 200)

    else:
        return response('failed', 'Required data not found in POST body.', 402)