Commit bf9cfce7 authored by Michael Nauge's avatar Michael Nauge
Browse files

Update nklAPI_Datas.py

ajout de la fonction post_datas_files
parent e04083b5
......@@ -381,6 +381,73 @@ def get_datas_files(nklTarget, identifier):
return nklR
def post_datas_files(nklTarget, identifier, fileInfos):
"""
Permet d'ajouter un fichier à une donnée.
Attention, le fichier doit être déposé avant à l'aide de la requête POST /uploads
Parameters
nklTarget : OBJ
une instance d'un objet NklTarget permettant de choisir nakala_prod ou nakala_test
identifier : STR
un DATA identifier nakala.
fileInfos : DICT
une instance d'un dictionaire python (qui sera converti en json) contenant les
clé-valeurs compatibles avec nakala
Pour plus d'informations sur les valeurs possibles à mettre
dans le dictionnaire :
https://apitest.nakala.fr/doc#operations-datas-post_datas__identifier__files
ex : {
"sha1": "string",
"description": "string",
"embargoed": "string"
}
"""
url = nklTarget.API_URL+"/datas/"+identifier+"/files"
APIheaders = {}
# on gère le cas où il n'y a pas de API_KEY ce qui posera problème au server
# mais il nous le fera savoir !
if nklTarget.apiKey_isEmpty()==False:
APIheaders = {"X-API-KEY": nklTarget.API_KEY_NKL,"accept": "application/json", "Content-Type": "application/json"}
# création d'une instance d'un objet NklResponse à retourner
nklR = NklResponse()
try :
response = requests.post(url, data =json.dumps(fileInfos), headers=APIheaders)
# on récupère le code
nklR.code = response.status_code
# 201 le serveur a bien répondu
if response.status_code == 200:
nklR.isSuccess = True
nklR.message="Fichier ajouter"
# on converti l'objet json retournée en dictionnaire python
nklR.dictVals = json.loads(response.text)
# on retourne l'objet NklResponse maintenant entièrement rempli
return nklR
else:
dicError = json.loads(response.text)
nklR.message=dicError['message']
except requests.exceptions.RequestException as e:
nklR.code=-1
nklR.message=e
#on retourne l'objet NklResponse avec erreur (de nakala ou de connexion reseau)
return nklR
def get_datas_uploads(nklTarget):
"""
......
Supports Markdown
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