import requests
import json
import argparse
from requests.auth import HTTPBasicAuth

parser = argparse.ArgumentParser(
    description="Send files/asset collections from one EDG server to another."
)

parser.add_argument(
    "--url_source", required=True, help="The source URL, e.g. localhost:8083"
)
parser.add_argument(
    "--url_target", required=True, help="The target URL, e.g. localhost:8080"
)
parser.add_argument(
    "--source_username", required=True, help="Username for source authentication"
)
parser.add_argument(
    "--source_password", required=True, help="Password for source authentication"
)
parser.add_argument(
    "--target_username", required=True, help="Username for target authentication"
)
parser.add_argument(
    "--target_password", required=True, help="Password for target authentication"
)
parser.add_argument(
    "--sendTriples", required=True, help="Send triples (when sending a collection)"
)
parser.add_argument(
    "--clearGraph",
    required=True,
    help="Clear triples when sending to an existing asset collection",
)
args = parser.parse_args()

with open("parameters.json", "r") as file:
    parameters = json.load(file)

parameters["userName"] = args.source_username
parameters["password"] = args.source_password
parameters["serverURL"] = f"{args.url_target}/tbl"
parameters["sendTriples"] = args.sendTriples
parameters["clearGraph"] = args.clearGraph

url = f"{args.url_source}/tbl/sendProjects"
response = requests.post(
    url, data=parameters, auth=HTTPBasicAuth(args.target_username, args.target_password)
)

print("Status Code:", response.status_code)
print("Response Body:", response.text)
