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