Skip to content
Snippets Groups Projects
Commit 339c3041 authored by Julien David's avatar Julien David
Browse files

Merge branch '004-Client-insert' into 'master'

adding insert to database

See merge request !6
parents 5bb0c4e7 45347337
No related branches found
No related tags found
1 merge request!6adding insert to database
Pipeline #1415 passed with stage
in 13 seconds
client.py 100644 → 100755
......@@ -16,37 +16,50 @@ class RdosClient():
# Function input Host : Server IP - Port : Server Port
# Function output returns JSON from server side contaning parameters
def __init__(self, port):
data = {"parameters": "request"}
socket = self.server_conn(__RDOS_Host__, port)
print("Connexion to socket : ")
data = json.dumps((__RDOS_Req__))
self.send_st(socket, data)
print((data))
dat = json.dumps((data))
socket.send(bytes(json.dumps(dat), "utf-8"))
recv = socket.recv(4096)
print("Données reçu : ", recv)
query = (json.loads(recv.decode('utf-8')))
__RDOS_Gen__ = query
print(__RDOS_Gen__)
# Function run_client connects client to server by socket
# Function run_client takes 3 parameters -Host : IP ADDRESS OF SERVER
# -Port : Server PORT -MESS:Message sent to the server
# Function run_Client returns the state of the server
def get_objects(self, data: dict):
# Function insert_query takes a query and send it to server for inserting a new job
# Function insert_query parameters : Dictionary
def insert_query(self, data: dict):
if (data is not None):
socket = self.server_conn('127.0.0.1', 9393)
req = json.dumps((data))
print("data send to server :", req)
socket.send(bytes((req), "utf-8"))
recv = socket.recv(4096)
query = ((recv.decode('utf-8')))
print("data received:", query)
else:
raise Exception("Dictionnaire Vide !!")
# Function get_objects connects client to server by socket
# Function get_objects takes 2 parameters
# Function get_objects returns the state of the server
def get_objects(self):
try:
s = self.server_conn(__RDOS_Host__, __RDOS_Port__)
print("Starting connexion to server on Port :", __RDOS_Port__)
message = json.dump((data))
recv = self.send_message(s, message)
message = json.dump((__RDOS_Req__))
recv = self.send_st(s, message)
print("Message ENVOYE : ", recv)
return recv
except socket.error as msg:
print("Erreur de Connexion vers le client:" % msg)
# Function match_dict returns non existing fields in a dict
# Function missing_keys returns non existing fields in a dict
# Function input biblio and dict
# Function returns a list containing missing values
# Function returns a list containing missing values else raises an Exception
def missing_keys(biblio: dict, gen: dict):
missing = []
if(biblio is not None):
if(biblio is not None and gen is not None):
for key in biblio:
if key not in gen:
missing.append(key)
......@@ -82,20 +95,20 @@ class RdosClient():
# send_mess Function that returns a message from a server to a client
# Function takes 2 parameters (Socket & Message )
# Function Output message send from server
def send_message(self, s: socket, message: dict):
data = ""
try:
if len(message) != 0:
def send_query(self, s: socket, message: dict):
if (message is not None):
try:
if self.match_query_dict(message, __RDOS_Gen__):
try:
s.send(bytes(message, "utf-8"))
data = s.recv(1024)
return data
return (data)
except Exception:
match = self.missing_keys(message, __RDOS_Gen__)
tool = data.keys().strip('[]')
match = self.missing_keys(message, __RDOS_Gen__[tool])
print("Missing parameters:" % match)
except ValueError as msg:
print("Erreur requete Vide " % msg)
except ValueError as msg:
print("Erreur requete Vide " % msg)
# Function server_conn creates a socket and connects it to server
# Function server_conn take No arguments
......@@ -112,15 +125,27 @@ class RdosClient():
# Function input Dictionnary
# Function OUTPUT Json string Format
def dict_to_JSON(self, biblio: dict):
if (self.missing_keys(biblio, __RDOS_Gen__) == []):
return json.dumps(biblio)
if(biblio is not None):
if (self.missing_keys(biblio, __RDOS_Gen__) == []):
return json.dumps(biblio)
else:
for a in __RDOS_Gen__:
print("Parameter: {}, Value : {}".format(a, __RDOS_Gen__[a]))
else:
for a in __RDOS_Gen__:
print("Parameter: {}, Value : {}".format(a, __RDOS_Gen__[a]))
raise Exception("Dictionnaire Vide!!")
# Function json_to_dict changes a json file into a Dict
# Function json_to_dict returns a dictionary
def json_to_dict(js):
if js is not None:
data = json.loads(js)
return data
else:
raise Exception("Dictionnaire Vide!!")
# Function help prints the generators parameters
# Function returns generator parameters
def help():
print('Generator parameters :')
for a in __RDOS_Gen__:
print("Parameter: {}, Value : {}".format(a, __RDOS_Gen__[a]))
print("Parameter: {}, Default Value : {}".format(a, __RDOS_Gen__[a]))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment