def update(self, gid, sid, did, scid, tid, cid): """ Updates the Check Constraint object. Args: gid: Server Group Id sid: Server Id did: Database Id scid: Schema Id tid: Table Id cid: Check Constraint Id """ data = request.form if request.form else json.loads( request.data, encoding='utf-8' ) try: data['schema'] = self.schema data['table'] = self.table SQL, name = check_utils.get_sql(self.conn, data, tid, cid) if not SQL: return name SQL = SQL.strip('\n').strip(' ') status, res = self.conn.execute_scalar(SQL) if not status: return internal_server_error(errormsg=res) sql = render_template( "/".join([self.template_path, 'get_name.sql']), cid=cid) status, res = self.conn.execute_dict(sql) if not status: return internal_server_error(errormsg=res) if "convalidated" in res['rows'][0] and \ res['rows'][0]["convalidated"]: icon = 'icon-check_constraint_bad' valid = False else: icon = 'icon-check_constraint' valid = True return jsonify( node=self.blueprint.generate_browser_node( cid, tid, name, icon=icon, valid=valid ) ) except Exception as e: return internal_server_error(errormsg=str(e))
def msql(self, gid, sid, did, scid, tid, cid=None): """ Returns the modified SQL. Args: gid: Server Group Id sid: Server Id did: Database Id scid: Schema Id tid: Table Id cid: Check Constraint Id Returns: Check Constraint object in json format. """ data = {} for k, v in request.args.items(): try: # comments should be taken as is because if user enters a # json comment it is parsed by loads which should not happen if k in ('comment',): data[k] = v else: data[k] = json.loads(v, encoding='utf-8') except ValueError: data[k] = v data['schema'] = self.schema data['table'] = self.table try: sql, name = check_utils.get_sql(self.conn, data, tid, cid) if not sql: return name sql = sql.strip('\n').strip(' ') if sql == '': sql = "--modified SQL" return make_json_response( data=sql, status=200 ) except Exception as e: return internal_server_error(errormsg=str(e))