Skip to content
Extraits de code Groupes Projets
Valider 6dd7a95d rédigé par Benjamin - Le Filament's avatar Benjamin - Le Filament
Parcourir les fichiers

[add] upload api function

parent e9b2f65f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -26,12 +26,14 @@ class CgscopAlfresco(models.AbstractModel):
_name = "cgscop.alfresco"
_description = "Connecteur Alfresco"
def alfresco_get_by_url(self, url, call_type, json=None):
def alfresco_get_by_url(self, url, call_type, json=None, files=None):
"""Création de la requête à Alfresco
:param url: action API Alfresco
:param call_type: post/get
:param json: data to post
:param files: byte to upload
:param data: data to post
@return response au format JSON
"""
......@@ -57,6 +59,16 @@ class CgscopAlfresco(models.AbstractModel):
alfresco_url + url,
auth=basicAuthCredentials,
json=json,
files=files,
verify=alfresco_ssl,
timeout=15,
)
elif call_type == "put":
response = requests.put(
alfresco_url + url,
auth=basicAuthCredentials,
data=json,
files=files,
verify=alfresco_ssl,
timeout=15,
)
......@@ -232,3 +244,31 @@ class CgscopAlfresco(models.AbstractModel):
)
except Exception as e:
raise exceptions.ValidationError(e)
def push_alfresco_file_api(self, file, name, metadata=None, folder=None):
"""
Ajoute un fichier sur la GED Alfresco
@return: fonction get_partner_files() de res.partner
"""
if not folder:
raise exceptions.ValidationError(
_("Le dossier parent n'existe pas ou n'est pas renseigné !")
)
# url = "/nodes/%s/children" % folder
url = (
"/alfresco/api/-default-/public/alfresco/versions/1/nodes/%s/children?majorVersion=true"
% folder
)
_logger.info("Chargement document Alfresco : %s" % name)
content_type = "multipart/form-data"
params = {
"name": name,
"nodeType": "cmis:document",
"overwrite": True,
"properties": metadata,
}
files = {"filedata": (name, file, content_type, params)}
return self.alfresco_get_by_url(url=url, call_type="post", files=files).json()
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter