Commit 15a9e683 authored by Alexander Lercher's avatar Alexander Lercher

Added table and layers for bank-app schema

parent 25546930
import sys
import os
from pathlib import Path
from typing import Dict, Any
import requests
modules_path = '../../../modules/'
if os.path.exists(modules_path):
sys.path.insert(1, modules_path)
import network_constants as nc
from security.token_manager import TokenManager
import tables.add_bank_app as add_bank_app
def add_use_case(use_case: str):
jwt = TokenManager.getInstance().getToken()
url = f"https://articonf1.itec.aau.at:30420/api/use-cases"
response = requests.post(
url,
verify=False,
proxies = { "http":None, "https":None },
headers = { "Authorization": f"Bearer {jwt}"},
json = {"name": use_case}
)
if response.status_code >= 400:
raise Exception(f"Error while uploading {use_case}: {str(response.content)}")
print(url+": "+str(response.status_code))
if __name__ == "__main__":
# disable ssl warnings :)
requests.packages.urllib3.disable_warnings()
use_case_name = 'bank-app'
add_use_case(use_case_name)
add_bank_app.main(use_case_name)
\ No newline at end of file
import network_constants as nc
from security.token_manager import TokenManager
import requests
def add_table(use_case: str, table_name: str):
'''
take the columns and add the mappings at the server
replace all "/"'s in the internal representation with a "_"
'''
jwt = TokenManager.getInstance().getToken()
columns = [
"Transaction_ID",
"From_User_ID",
"To_User_ID",
"Timestamp",
"Amount",
"Transaction_Type",
]
columns = { c : c for c in columns }
columns["UniqueID"] = "Transaction_ID+Timestamp"
url = f"https://articonf1.itec.aau.at:30420/api/use-cases/{use_case}/tables"
table = {
"name": table_name,
"mappings": columns
}
response = requests.post(
url,
verify=False,
proxies = { "http":None, "https":None },
headers = { "Authorization": f"Bearer {jwt}"},
json = table
)
print(url+": "+str(response.status_code))
def add_layers(use_case: str, table_name: str):
layers = [
{
"use_case": use_case,
"table": table_name,
"name": "Amount_Layer",
"properties": [
"UniqueID",
"From_User_ID",
"To_User_ID",
"Timestamp",
"Amount"
],
"cluster_properties": [
"Amount"
]
},
{
"use_case": use_case,
"table": table_name,
"name": "Transaction_Type_Layer",
"properties": [
"UniqueID",
"From_User_ID",
"To_User_ID",
"Timestamp",
"Transaction_Type"
],
"cluster_properties": [
"Transaction_Type"
]
},
]
jwt = TokenManager.getInstance().getToken()
for layer in layers:
url = f"https://articonf1.itec.aau.at:30420/api/layers"
response = requests.post(
url,
verify=False,
proxies = { "http":None, "https":None },
headers = { "Authorization": f"Bearer {jwt}"},
json = layer
)
print(url+": "+str(response.status_code))
def main(use_case_name):
table_name = 'bank-app'
add_table(use_case_name, table_name)
add_layers(use_case_name, table_name)
\ No newline at end of file
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