Beispiel #1
0
	def get(self):
		"""
		Method get()
		@param self
		Gets called on GET request method call
		"""
		channel_name = self.get_argument("channel", None)
		username = self.get_argument("username", None)

		if not channel_name or not username: ## If Channel Or User Not Provided, Render To Home Page
			self.render("../templates/index.html")
		else:
			channel = self.db_manager.retrieve(collection='channel', filter_by={'channel_name':channel_name})
			user = self.db_manager.retrieve(collection='users', filter_by={'username':username})
			if not len(channel) or not len(user):
				data = {
					'message' : 'Channel Or User Not Found !',
				}
				result = transformer.response_transform(data, status_code=404, message_type='error', message='Not Found. Failed to respond', service_code='API_FAIL_009', hint='Channel Or Username is Not Registered. Please Register First')
				self.set_status(404) ## For Setting Up HTTP Status Code
				self.write(json.dumps(result)) ## As it accepts only bytes, unicode, and dict objects
				self.finish()
			else:
				channel_id, client_id = self.channel_data_handler.attach_client_to_channel(channel[0]['id'], user[0]['id'])
				data = {
					'channel_id' : channel_id,
					'client_id' : client_id
				}
				result = transformer.response_transform(data, status_code=200, message_type='success', message='Successfully Responded', service_code='API_SUCCESS_014', hint='Channel and Client Found')
				self.set_header("Content-Type", "application/json")
				self.set_status(200) ## For Setting Up HTTP Status Code
				self.write(json.dumps(result)) ## As it accepts only bytes, unicode, and dict objects
				self.finish()
Beispiel #2
0
	def get(self, method):
		"""
		Method get()
		To get user list OR by ID
		"""
		channel_name = self.get_argument("name", '')
		channels = self.db_manager.retrieve(collection='channel', filter_by={'channel_name':channel_name})
		if not len(channels):
			data = {
				'message' : 'Channel Not Found !',
			}
			result = transformer.response_transform(data, status_code=404, message_type='error', message='Not Found. Failed to respond', service_code='API_FAIL_010', hint='Channel name should be registered first')
			self.set_status(404)
		else:
			messages = self.db_manager.retrieve(collection='channel_message__'+channels[0]['channel_name'], filter_by={})
			result = transformer.response_transform([message for message in messages])
			self.set_status(200)
		self.write(json.dumps(result)) ## As it accepts only bytes, unicode, and dict objects
		self.finish()
Beispiel #3
0
	def post(self, method):
		"""
		Method post()
		To register a channel
		"""
		data = json.loads(self.request.body)
		channel_name = data['name'] if 'name' in data else ''
		if channel_name == '' or len(channel_name) < 5:
			data = {
				'message' : 'Please Provide Valid Channel Name !',
			}
			result = transformer.response_transform(data, status_code=400, message_type='error', message='Bad Request. Failed to respond', service_code='API_FAIL_001', hint='Channel name should be more than 4 words')
			self.set_status(400)
		else:
			channels = self.db_manager.retrieve(collection='channel', filter_by={'channel_name':slugify(channel_name, max_length=30, word_boundary=True, save_order=True)})
			if len(channels):
				data = {
					'message' : 'Channel Name Already Exists !',
				}
				result = transformer.response_transform(data, status_code=409, message_type='error', message='Duplicate Entry. Failed to respond', service_code='API_FAIL_002', hint='Try with different channel name')
				self.set_status(409)
			else:
				data = {
					'_id' : str(utility.generate_uuid()),
					'id' : str(utility.generate_uuid()),
					'channel_name' : slugify(channel_name, max_length=30, word_boundary=True, save_order=True),
					'created_at' : str(utility.get_date_time()),
					'updated_at' : str(utility.get_date_time()),
				}
				channel = self.db_manager.create(collection='channel', data=data)
				if channel:
					del data['_id']
					result = transformer.response_transform(data, status_code=201, service_code='API_SUCCESS_001', hint='Channel Added Successfully')
					self.set_status(201)
				else:
					data = {
						'message' : 'Failed To Register Channel. Try Again !',
					}
					result = transformer.response_transform(data, status_code=500, message_type='error', message='Something Went Wrong', service_code='API_FAIL_003', hint='We messed up !')
					self.set_status(500)
		self.write(json.dumps(result))
		self.finish()
Beispiel #4
0
	def get(self, method):
		"""
		Method get()
		To get channel list OR by ID
		"""
		channel_name = self.get_argument("channel", None)
		if channel_name is None:
			channels = self.db_manager.list(collection='channel')[::-1]
		else:
			channels = self.db_manager.retrieve(collection='channel', filter_by={'channel_name':channel_name})
		result = transformer.response_transform([transformer.channel_transform(channel) for channel in channels])
		self.write(json.dumps(result)) ## As it accepts only bytes, unicode, and dict objects
		self.set_status(200)
		self.finish()
Beispiel #5
0
    def get(self, method):
        """
		Method get()
		To get user list OR by ID
		"""
        username = self.get_argument("username", None)
        if username is None:
            users = self.db_manager.list(collection='users')[::-1]
        else:
            users = self.db_manager.retrieve(collection='users',
                                             filter_by={'username': username})

        result = transformer.response_transform(
            [transformer.user_transform(user) for user in users])
        self.set_status(200)
        self.write(json.dumps(
            result))  ## As it accepts only bytes, unicode, and dict objects
        self.finish()
Beispiel #6
0
	def get(self, method):
		"""
		Method get()
		To get user list OR by ID
		"""
		template = self.get_argument("template", None)
		channel = self.get_argument("channel", None)
		client = self.get_argument("client", None)
		if template is None:
			data = {
				'message' : 'Please Provide Valid Template Name!',
			}
			result = transformer.response_transform(data, status_code=400, message_type='error', message='Bad Request. Failed to respond', service_code='API_FAIL_004', hint='Please template name')
			self.set_status(400)
			self.write(json.dumps(result)) ## As it accepts only bytes, unicode, and dict objects
			self.finish()
		else:
			if channel is not None and client is not None:
				self.render("../templates/"+template+'.html', client_id=client, channel_id=channel)
			else:
				self.render("../templates/"+template+'.html')
Beispiel #7
0
    def post(self, method):
        """
		Method post()
		To add a user to db record
		"""
        data = json.loads(self.request.body)
        username = data['username'] if 'username' in data else ''
        display_name = data['display_name'] if 'display_name' in data else ''

        if username == '' or display_name == '':
            data = {
                'message': 'Please Provide Valid Username and Display Name !',
            }
            result = transformer.response_transform(
                data,
                status_code=400,
                message_type='error',
                message='Bad Request. Failed to respond',
                service_code='API_FAIL_004',
                hint='Username and Display Name is Required')
            self.set_status(400)
        else:
            users = self.db_manager.retrieve(collection='users',
                                             filter_by={
                                                 'username':
                                                 slugify(username,
                                                         max_length=30,
                                                         word_boundary=True,
                                                         save_order=True)
                                             })
            if len(users):
                data = {
                    'message': 'Username Already Taken !',
                }
                result = transformer.response_transform(
                    data,
                    status_code=409,
                    message_type='error',
                    message='Duplicate Entry. Failed to respond',
                    service_code='API_FAIL_002',
                    hint='Try with different username')
                self.set_status(409)
            else:
                data = {
                    '_id':
                    str(utility.generate_uuid()),
                    'id':
                    str(utility.generate_uuid()),
                    'username':
                    slugify(username,
                            max_length=30,
                            word_boundary=True,
                            save_order=True),
                    'display_name':
                    display_name,
                    'created_at':
                    str(utility.get_date_time()),
                    'updated_at':
                    str(utility.get_date_time()),
                }
                user = self.db_manager.create(collection='users', data=data)
                if user:
                    del data['_id']
                    result = transformer.response_transform(
                        data,
                        status_code=201,
                        service_code='API_SUCCESS_003',
                        hint='User Added Successfully')
                    self.set_status(201)
                else:
                    data = {
                        'message': 'Failed To Register User. Try Again !',
                    }
                    result = transformer.response_transform(
                        data,
                        status_code=500,
                        message_type='error',
                        message='Something Went Wrong',
                        service_code='API_FAIL_006',
                        hint='We messed up !')
                    self.set_status(500)
        self.write(json.dumps(result))
        self.finish()