Podio API - Java - 将文件附加到现有项目

时间:2016-08-04 16:10:20

标签: java podio

我一直在寻找关于此的任何信息的高低,但到目前为止我还没有发现任何有用的信息。我对podio API比较陌生,我正在尝试将我在程序中创建的文件上传/附加到特定应用程序中的特定项目。我已成功将文件上传到API,我已将其添加到特定项目的文件列表中,但它不会“粘贴”/更新以具有任何持久性。在方法结束时,我可以调用getFiles(),然后文件将在那里,但文件在podio上不可见,如果我在任何其他时间调用getFiles()它将不在那里。这是我的代码:

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是我要将文件上传到的特定项目。我不是一个经验丰富的编码器,但在我看来,通过调用setFiles(文件)我只更新项目userItem的本地版本?如果是这种情况那么我如何用自己的版本更新podio的userItem版本?如果我完全咆哮错误的树在哪里我出错了?我一直在寻找更新项目的方法,但它们似乎只是用于更新字段/字段值。

提前致谢!

2 个答案:

答案 0 :(得分:1)

对项目的任何更新都将为您创建一个版本,因此您无需创建。您可以使用以下链接的方法获取版本或恢复为版本。

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

您的问题是关于处理项目的文件,相应地指定它们,以便我们可以更好地帮助您。

答案 1 :(得分:1)

遗憾的是,Java SDK中没有附加文件方法。您可以使用其他SDK,例如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

如果你真的想在JAVA SDK中工作,我会更新JAVA SDK相应的方法,或者你可以使用updateItem将文件更新为现有项目。

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();
    }
}  

以上文件ID必须来自以下方法enter image description here

让我知道它有帮助。