def update_item_group(group, item): try: email = token_email() data = request.json data['updated'] = gen_time() if data['item_info'] and len( data['item_info']) <= 64 and data['item_name'] and len( data['item_name']) <= 64 and data['item_type'] and len( data['item_type']) <= 64 and data['end_date'] and len( data['end_date'] ) <= 10 and data['notify_date'] and len( data['notify_date'] ) <= 10 and data['updated'] and len( data['updated']) <= 26 and len(data) <= 6: response = get_record(group, 'account') # Check if the user has access to the group if email in response[0]['group_member'] or email in response[0][ 'group_admin'] or email in response[0]['group_creator']: get_item = get_record(group, item) if get_item[0]['creator'] == email or email in response[0][ 'group_admin'] or email in response[0]['group_creator']: data['email'] = group data['item'] = item update_group_record(group, item, data) return jsonify("Updated: {}".format(item)), 200 return jsonify( "You don't have permission to update this record"), 403 else: return jsonify( "You must fill in all of the required fields *"), 400 except: return jsonify('Misunderstood Request'), 400
def upload_file(item): ssm = boto3.client('ssm', region_name=region_name, verify=False) access_key = ssm.get_parameter(Name='/gozeit/s3/aws_access_key') aws_access_key = access_key['Parameter']['Value'] secret_key = ssm.get_parameter(Name='/gozeit/s3/aws_secret_access_key', WithDecryption=True) aws_secret_key = secret_key['Parameter']['Value'] email = token_email() item_key = gen_time() s3 = boto3.client('s3', aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key) user_settings = get_record(email, 'account') if 'deny_upload' in user_settings[0] and user_settings[0][ 'deny_upload'] == 'true': return jsonify('Gozeit has suspended your storage service.'), 405 if 'limit_filesize' in user_settings[0]: limit_filesize = user_settings[0]['limit_filesize'] else: limit_filesize = 1048579 response = s3.generate_presigned_post( Bucket=s3_bucket, Key='customers/' + email + '/' + item_key + '_' + item, Conditions=[['content-length-range', 1, int(limit_filesize)]]) response['item'] = item_key return jsonify(response)
def update_item(item): email = token_email() try: data = request.json data['updated'] = gen_time() if data['itemname'] and data['end_date'] and data[ 'notify_date'] and data['typename'] and data[ 'remarks'] and data['updated'] and len(data) == 6: data['email'] = email data['item'] = item update_record(email, item, data) return jsonify("updated: {}".format(item)), 204 return jsonify('You must fill in all of the required fields *'), 400 except: return jsonify('Misunderstood Request'), 400
def create_group(): if (creating_group_limit()): return jsonify('{} Records Limit Reached'.format( creating_group_limit.group_limit)), 426 email = token_email() try: data = request.json if data['group_name'] and len(data) == 1: data['email'] = str(uuid4())[:13] + '*****@*****.**' user_settings = get_record(email, 'account') if 'group_creator' not in user_settings[0]: user_settings[0]['group_creator'] = [] group_creator = user_settings[0]['group_creator'] group_creator.append(data['email']) user_settings[0]['group_creator'] = group_creator group_email = data['email'] group_name = data['group_name'] created = gen_time() item = { 'created': created, 'email': group_email, 'item': 'account', 'group_creator': [email], 'group_name': group_name, 'group_admin': [], 'group_member': [] } add_record(item) # create group_member if not exsit if 'group_member' not in user_settings[0]: user_settings[0]['group_member'] = [] user_group_update_creator(email, user_settings[0]['group_creator']) return jsonify(data), 201 return jsonify('You must fill in all of the required fields *'), 400 except: return jsonify('Misunderstood Request'), 400
def create_item_group(group): try: email = token_email() response = get_record(group, 'account') # Check if the user has access to the group if email in response[0]['group_member'] or email in response[0][ 'group_admin'] or email in response[0]['group_creator']: data = request.json if data['item_info'] and len( data['item_info']) <= 64 and data['item_name'] and len( data['item_name']) <= 64 and data['item_type'] and len( data['item_type'] ) <= 64 and data['end_date'] and len( data['end_date'] ) <= 10 and data['notify_date'] and len( data['notify_date']) <= 10 and len(data) <= 5: ## Group Limit if (group_limit_items(group)): return jsonify('{} Records Limit Reached'.format( group_limit_items.group_items)), 426 data['email'] = group if 'filename' in data: data['item'] = data['filename'][:26] data['filename'] = data['filename'][27:] else: data['item'] = gen_time() data['creator'] = email add_record(data) return jsonify(data), 201 return jsonify( 'You must fill in all of the required fields *'), 400 else: return jsonify( "You don't have permission to access this group"), 403 except: return jsonify('Misunderstood Request'), 400
def group_update(group): try: email = token_email() data = request.json data['updated'] = gen_time() if data['group_name'] and data['updated'] and len(data) == 2: response = get_record(group, 'account') # Check if the user has access to the group if email in response[0]['group_admin'] or email in response[0][ 'group_creator']: data['email'] = group update_group(group, 'account', data) return jsonify("Updated: {}".format(group)), 200 return jsonify( "Only group admins or creator can perform this update"), 403 else: return jsonify( "You must fill in all of the required fields *"), 400 except: return jsonify('Misunderstood Request'), 400
def add_data(): if (user_limit()): return jsonify('{} Records Limit Reached'.format( get_item.item_limit)), 426 email = token_email() try: data = request.json if data['itemname'] and data['end_date'] and data[ 'notify_date'] and data['typename'] and data[ 'remarks'] and len(data) <= 6: data['email'] = email if 'filename' in data: data['item'] = data['filename'][:26] data['filename'] = data['filename'][27:] else: data['item'] = gen_time() add_record(data) return jsonify(data), 201 return jsonify('You must fill in all of the required fields *'), 400 except: return jsonify('Misunderstood Request'), 400