Commit 77b8183b authored by Sarah Abrishami's avatar Sarah Abrishami

WIP: added CRUD functions

parent b0bb0cd5
import gzip
import collections
from flask import make_response, json
import numpy as np
import pandas as pd
from app.errors import *
import gc
from rulemall.utils.rule_builder import rule_builder
from app import db
from app.models import Validation
import yaml
from app import db
from app.models import Ruleset
def add_rg(rsid, rg):
rs = db.session.query(Ruleset).filter(Ruleset.uid == rsid).one()
rs.add_rulegroup(rg)
db.session.add(rs)
db.session.commit()
return True
def return_rg(rsid, rgid=None):
rs = db.session.query(Ruleset).filter(Ruleset.uid == rsid).one()
rules = rs.return_rulegroups()
if rgid:
rules = list(filter(lambda x: x.uid == rgid, rules))
return rules
def rm_rg(rsid, rgid=None):
rs = db.session.query(Ruleset).filter(Ruleset.uid == rsid).one()
if rgid:
rs = Ruleset()
rs.rulegroups = list(filter(lambda x: x.uid != rgid, rs.rulegroups))
else:
db.session.delete(rs)
db.session.commit()
return rsid
from app.main import main
from app.main.utils.common import response_message
from flask import request
from rulemall import RuleSet
@main.route('/create', methods=['POST'])
def create():
req = request.get_json()
data = req['data']
rgs = req['rulesgroup']
rs = RuleSet(data)
return response_message()
from app.main import main
from app.main.utils.common import response_message
from flask import request
from rulemall import RulesGroup
from app.main.utils.db_util import add_rg, return_rg, rm_rg
@main.post('/rg/<uuid:rsid>')
def create_rg(rsid):
req = request.get_json()
try:
configs = {'name': req['name'], 'rules': req['rules']}
rg = RulesGroup().from_dict(configs)
add_rg(rsid, configs)
except Exception as e:
return response_message(str(e), 500)
return response_message()
@main.get('/rg/<uuid:rsid>')
def read_all_rg(rsid):
try:
# TODO what do we what to send back?
rgs = return_rg(rsid)
except Exception as e:
return response_message(str(e), 500)
return response_message(rgs)
@main.get('/rg/<uuid:rsid>/<uuid:rgid>')
def read_rg(rsid, rgid):
try:
rgs = return_rg(rsid, rgid)
except Exception as e:
return response_message(str(e), 500)
return response_message(rgs)
@main.put('/rg')
def update_rg():
req = request.get_json()
data = req['data']
return response_message()
@main.delete('/rg/<uuid:rsid>')
def delete_rg(rsid):
try:
rgs = rm_rg(rsid)
except Exception as e:
return response_message(str(e), 500)
return response_message(rgs)
@main.delete('/rg/<uuid:rsid>/<uuid:rgid>')
def delete_rg(rsid, rgid):
try:
rgs = rm_rg(rsid, rgid)
except Exception as e:
return response_message(str(e), 500)
return response_message(rgs)
......@@ -8,9 +8,9 @@ from datetime import datetime
@main.route('/validate', methods=['GET', 'POST'])
def validate():
data = read_data()
name, rules = read_rules()
rs = RulesGroup(data=data, name=name)
rs.from_dict(rules)
configs = read_rules()
rs = RulesGroup().from_dict(configs)
rs.reset_data(data)
validation, responsible = rs.validate()
validation = pd.concat([validation.rename('validation'), responsible], axis=1)
validation = validation.reset_index().rename(columns={'index': 'rid'})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment