Open
Description
Summary
Starting with Connect 1.3.0, the users can get files that are stored in an Item. Connect Node SDK should enable the users to do that.
In this issue, we will enable the user to download a file stored in 1Password.
Tasks to be done
- Implement
downloadFile
function in theItems
class insrc/lib/resources.ts
. The API endpoint that this function needs to call isv1/vaults/vaultId/items/itemId/files/fileId/content
. You'll have to figure out the object type the promise expects.Note: Feel free to place this functionality in a separate class (e.g. Files) if you feel it's more suitable. This is just a suggested approach./** * Download an Item's File in the provided path. * * @param {string} vaultId * @param {string} itemQuery * @param {string} fileId * @param {string} targetDirectory * @param {boolean} overwrite * @returns {Promise<string>} * @private */ private async getFileContent( vaultId: string, itemQuery: string, fileId: string, targetDirectory: string, overwrite: boolean, ): Promise<string> { // functionality }
- Implement
downloadFile
function in OPConnect class insrc/lib/op-connect.ts
:/** * Download an Item's File in the provided path. * * @param {string} vaultId * @param {string} itemQuery * @param {string} fileId * @returns {Promise<string>} */ public async downloadFile(vaultId: string, itemQuery: string, fileId: string. targetDirectory: string, overwrite: boolean): Promise<string> { return await this.items.getFileContent(vaultId, itemQuery, fileId, targetDirectory, overwrite); }
- Add a test for the new function in
__test__/op-connect.test.ts
. This may be a tricky one.test("downloadFile", async () => { // actual test here }
Metadata
Metadata
Assignees
Labels
No labels