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)
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)