def deletefile(billid, fileid): bill_id = billid username = request.authorization.username passwordinfo = request.authorization.password bill_sc = Billschema(many=False) data1 = request.get_json() flag = checkauthentication(username, passwordinfo) if flag == True: #check if user exits result = Credential.select_user_by_email(username) user_sc = Credentialschema() data = user_sc.dump(result) owner_id = data.get('id') result2 = Bills.select_user_by_billid(bill_id) bill_sc = Billschema(many=False) data2 = bill_sc.dump((result2)) owner_id2 = data2.get('owner_id') if owner_id == owner_id2: #authorized against bill and user file_sc = File_schema_output(many=False) result = File.select_file_by_file_id(fileid) print(result) if not result: return custom_http_code("file does not exist", 404) basedir = app.config['UPLOAD_FOLDER'] filedir = root_dir + "/" + "attachments" + "/" + fileid + "/" shutil.rmtree(filedir) File.delete_file(fileid) return custom_http_code(data, 204) else: return custom_http_code('Unauthorised', 401) else: return custom_http_code('invalid login', 401)
def deletefile(billid, fileid): start = time.time() bill_id = billid username = request.authorization.username passwordinfo = request.authorization.password bill_sc = Billschema(many=False) data1 = request.get_json() dbtime = time.time() flag = checkauthentication(username, passwordinfo) dur = (time.time() - dbtime) * 1000 c.timing("dbconnect", dur) if flag == True: #check if user exits result = Credential.select_user_by_email(username) user_sc = Credentialschema() data = user_sc.dump(result) owner_id = data.get('id') result2 = Bills.select_user_by_billid(bill_id) bill_sc = Billschema(many=False) data2 = bill_sc.dump((result2)) owner_id2 = data2.get('owner_id') if owner_id == owner_id2: #authorized against bill and user file_sc = File_schema_output(many=False) dbtime = time.time() result = File.select_file_by_file_id(fileid) dur = (time.time() - dbtime) * 1000 c.timing("dbconnect", dur) print(result) if not result: return custom_http_code("file does not exist", 404) filedir = root_dir + "/" + "attachments" + "/" + fileid + "/" bucketkey = 'fileid' + '/' s3 = boto3.resource("s3") bucketobj = s3.Bucket(bucket) file_key = fileid + '/' bucketobj.objects.filter(Prefix=file_key).delete() if os.path.exists(filedir): shutil.rmtree(filedir) else: print("file id folder noyt found") File.delete_file(fileid) c.incr("deletefilecount") dur = (time.time() - start) * 1000 c.timing("deletefilecount", dur) return custom_http_code(data, 204) else: c.incr("deletefilecount") dur = (time.time() - start) * 1000 c.timing("deletefilecount", dur) return custom_http_code('Unauthorised', 401) else: return custom_http_code('invalid login', 401)