Skip to content

Commit

Permalink
Feature/moments file upload progress (#41)
Browse files Browse the repository at this point in the history
* Add on file progress update callbacks

* bump package versions

* Fix comments
  • Loading branch information
nacho9900 authored Jul 12, 2023
1 parent 97bc6d3 commit 9a4ab63
Show file tree
Hide file tree
Showing 10 changed files with 32 additions and 18 deletions.
6 changes: 3 additions & 3 deletions packages/drops/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@poap-xyz/drops",
"version": "0.0.26",
"version": "0.0.27",
"description": "Drops module for the poap.js library",
"main": "dist/cjs/index.cjs",
"module": "dist/esm/index.mjs",
Expand Down Expand Up @@ -29,7 +29,7 @@
"rollup": "^3.20.2"
},
"peerDependencies": {
"@poap-xyz/providers": "0.0.26",
"@poap-xyz/utils": "0.0.26"
"@poap-xyz/providers": "0.0.27",
"@poap-xyz/utils": "0.0.27"
}
}
4 changes: 2 additions & 2 deletions packages/moments/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@poap-xyz/moments",
"version": "0.0.26",
"version": "0.0.27",
"description": "Moments module for the poap.js library",
"main": "dist/cjs/index.cjs",
"module": "dist/esm/index.mjs",
Expand Down Expand Up @@ -29,6 +29,6 @@
"rollup": "^3.20.2"
},
"peerDependencies": {
"@poap-xyz/providers": "0.0.26"
"@poap-xyz/providers": "0.0.27"
}
}
7 changes: 6 additions & 1 deletion packages/moments/src/client/MomentsClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,12 @@ export class MomentsClient {
void onStepUpdate(CreateSteps.REQUESTING_MEDIA_UPLOAD_URL);
const { url, key } = await this.poapMomentsApi.getSignedUrl();
void onStepUpdate(CreateSteps.UPLOADING_MEDIA);
await this.poapMomentsApi.uploadFile(input.file, url, input.fileType);
await this.poapMomentsApi.uploadFile(
input.file,
url,
input.fileType,
input.onFileUploadProgress,
);
void onStepUpdate(CreateSteps.UPLOADING_MEDIA_METADATA);
// we will be adding metadata to the media in the future
void onStepUpdate(CreateSteps.PROCESSING_MEDIA);
Expand Down
3 changes: 3 additions & 0 deletions packages/moments/src/client/dtos/create/CreateInput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import { CreateSteps } from './CreateSteps';
* @property {string} author - The author of the moment.
* @property {string} timeOut - The amount of time to wait until media is processed.
* @property {string} fileType - The type of the file.
* @property {(step: CreateSteps) => void | Promise<void>} [onStepUpdate] - Optional callback function to be called when the step changes.
* @property {(progress: number) => void | Promise<void>} [onFileProgress] - Optional callback function to be called when the file upload progress change - progress is a number between 0 and 1.
*/
export interface CreateMomentInput {
dropId: number;
Expand All @@ -18,4 +20,5 @@ export interface CreateMomentInput {
timeOut?: number;
fileType: string;
onStepUpdate?: (step: CreateSteps) => void | Promise<void>;
onFileUploadProgress?: (progress: number) => void | Promise<void>;
}
6 changes: 3 additions & 3 deletions packages/poaps/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@poap-xyz/poaps",
"version": "0.0.26",
"version": "0.0.27",
"description": "Poaps module for the poap.js library",
"main": "dist/cjs/index.cjs",
"module": "dist/esm/index.mjs",
Expand Down Expand Up @@ -29,7 +29,7 @@
"rollup": "^3.20.2"
},
"peerDependencies": {
"@poap-xyz/providers": "0.0.26",
"@poap-xyz/utils": "0.0.26"
"@poap-xyz/providers": "0.0.27",
"@poap-xyz/utils": "0.0.27"
}
}
3 changes: 1 addition & 2 deletions packages/providers/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@poap-xyz/providers",
"version": "0.0.26",
"version": "0.0.27",
"description": "Providers module for the poap.js library",
"main": "dist/cjs/index.cjs",
"module": "dist/esm/index.mjs",
Expand All @@ -26,7 +26,6 @@
},
"devDependencies": {
"axios-mock-adapter": "^1.21.4",
"jest-mock-extended": "^3.0.4",
"rollup": "^3.20.2"
},
"peerDependencies": {
Expand Down
7 changes: 7 additions & 0 deletions packages/providers/src/core/PoapMomentsApi/PoapMomentsApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,24 @@ export class PoapMomentsApi implements MomentsApiProvider {
* @param {Buffer} file - The file to be uploaded as a Buffer
* @param {string} fileType - The file type
* @param {string} signedUrl - The signed URL for uploading the file
* @param {(progress: number) => void} [onProgress] - Optional callback function to be called when the upload progress changes - progress is a number between 0 and 1
* @returns {Promise<void>} - A Promise that resolves when the file has been uploaded
*/
public async uploadFile(
file: Buffer,
signedUrl: string,
fileType: string,
onProgress?: (progress: number) => void,
): Promise<void> {
await axios.put(signedUrl, file, {
headers: {
'Content-Type': fileType,
},
onUploadProgress: (progressEvent) => {
if (onProgress) {
onProgress(progressEvent.progress || 0);
}
},
});
}

Expand Down
1 change: 1 addition & 0 deletions packages/providers/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export { InvalidMediaFileError } from './core/PoapMomentsApi/errors/InvalidMediaFileError';
export { DropResponse } from './ports/DropApiProvider/Types/response';
export { AuthenticationProvider } from './ports/AuthenticationProvider/AuthenticationProvider';
export * from './ports';
export * from './core';
2 changes: 1 addition & 1 deletion packages/utils/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@poap-xyz/utils",
"version": "0.0.26",
"version": "0.0.27",
"description": "Utils module for the poap.js library",
"type": "module",
"main": "dist/cjs/index.cjs",
Expand Down
11 changes: 5 additions & 6 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -872,8 +872,8 @@ __metadata:
dependencies:
rollup: ^3.20.2
peerDependencies:
"@poap-xyz/providers": 0.0.26
"@poap-xyz/utils": 0.0.26
"@poap-xyz/providers": 0.0.27
"@poap-xyz/utils": 0.0.27
languageName: unknown
linkType: soft

Expand All @@ -883,7 +883,7 @@ __metadata:
dependencies:
rollup: ^3.20.2
peerDependencies:
"@poap-xyz/providers": 0.0.26
"@poap-xyz/providers": 0.0.27
languageName: unknown
linkType: soft

Expand All @@ -893,8 +893,8 @@ __metadata:
dependencies:
rollup: ^3.20.2
peerDependencies:
"@poap-xyz/providers": 0.0.26
"@poap-xyz/utils": 0.0.26
"@poap-xyz/providers": 0.0.27
"@poap-xyz/utils": 0.0.27
languageName: unknown
linkType: soft

Expand All @@ -903,7 +903,6 @@ __metadata:
resolution: "@poap-xyz/providers@workspace:packages/providers"
dependencies:
axios-mock-adapter: ^1.21.4
jest-mock-extended: ^3.0.4
rollup: ^3.20.2
peerDependencies:
axios: ^1.3.5
Expand Down

0 comments on commit 9a4ab63

Please sign in to comment.