/ / Podio API - Java - Association de fichiers à des éléments existants - java, podio

Podio API - Java - Association de fichiers à des éléments existants - java, podio

J'ai cherché haut et bas pour toutDes informations à ce sujet, mais je n’ai encore rien trouvé d’utile. Je suis relativement nouveau dans l’API de podio et j’essaie de télécharger / joindre un fichier que je crée dans mon programme à un élément spécifique dans une application spécifique. I " Nous avons correctement transféré le fichier sur l'API et je l'ai ajouté à la liste des fichiers de l'élément spécifique, mais il ne "t" colle pas / update pour rester permanent. À la fin de la méthode, je peux appeler getFiles (). et le fichier sera là cependant le fichier n’est pas visible sur podio et si j’appelle getFiles () à tout autre moment, il ne sera pas là. Voici mon code:

public static void uploadTimeSheet(File timeSheet){
FileAPI fileApi = apiFactory.getAPI(FileAPI.class);
int fileId = fileApi.uploadFile(timeSheet.getName(), timeSheet);
com.podio.file.File timeSheetUploaded = fileApi.getFile(fileId);
List<com.podio.file.File> files = new ArrayList<com.podio.file.File>();
files = userItem.getFiles();
files.add(timeSheetUploaded);
userItem.setFiles(files);
}

userItem est l'élément spécifique que je veux téléchargerle fichier à. Je ne suis en aucun cas un codeur expérimenté, mais il me semble qu'en appelant setFiles (fichiers), je ne mets à jour qu'une version locale de l'élément userItem? Et si j’aborde complètement le mauvais arbre, où est-ce que j’ai mal tourné? Je cherchais des méthodes qui mettent à jour les éléments, mais elles ne semblent servir qu’à mettre à jour les champs / valeurs de champs.

Merci d'avance!

Réponses:

1 pour la réponse № 1

La méthode d'attachement de fichier n'est malheureusement pas disponible dans Java SDK. Vous pouvez utiliser d’autres SDK, tels que Ruby.

 # Attach a file to an existing reference
# @see https://developers.podio.com/doc/files/attach-file-22518
def attach(id, ref_type, ref_id)
Podio.connection.post do |req|
req.url "/file/#{id}/attach"
req.body = {:ref_type => ref_type, :ref_id => ref_id}
end
end

Si vous voulez vraiment travailler dans JAVA SDK, je mettrai à jour la méthode correspondante de JAVA SDK ou vous pourrez contourner le problème en utilisant updateItem pour mettre à jour un fichier avec un élément existant.

public void updateItemFieldValues(int itemId, int fieldId,
List<Map<String, Object>> values, boolean silent, boolean hook) {
getResourceFactory()
.getApiResource("/item/" + itemId + "/value/" + fieldId)
.queryParam("silent", silent ? "1" : "0")
.queryParam("hook", hook ? "1" : "0")
.entity(values, MediaType.APPLICATION_JSON_TYPE).put();
}
}

ci-dessus, l'ID de fichier doit être dérivé de la méthode ci-dessous entrer la description de l'image ici

Dites-moi que ça aide.


1 pour la réponse № 2

Toute mise à jour de l’élément créera une version pour vous, vous n’avez donc pas à la créer. Vous pouvez obtenir la version ou revenir à la version avec les méthodes du lien ci-dessous.

https://developers.podio.com/doc/items

Si votre question concerne le traitement des fichiers des éléments, spécifiez-les en conséquence, afin que nous puissions vous aider au mieux.