[WIKI-419] chore: new asset duplicate endpoint added (#7172)
* chore: new asset duplicate endpoint added * chore: change the type in url * chore: added rate limiting for image duplication endpoint * chore: added rate limiting per asset id * chore: added throttle class * chore: added validations for entity * chore: added extra validations * chore: removed the comment * chore: reverted the frontend code * chore: added the response key * feat: handle image duplication for web * feat: custom image duplication update * fix: remove paste logic for image * fix : remove entity validation * refactor: remove entity id for duplication * feat: handle duplication in utils * feat: add asset duplication registry * chore: update the set attribute method * fix: add ref for api check * chore :remove logs * chore : add entity types types * refactor: rename duplication success status value * chore: update attribute to enums * chore: update variable name * chore: set uploading state * chore : update enum name * chore : update replace command * chore: fix retry UI * chore: remove default logic * refactor: optimize imports in custom image extension files and improve error handling in image duplication * fix:type error * Update packages/editor/src/core/extensions/custom-image/components/node-view.tsx Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix: enhance asset duplication handler to ignore HTTP sources --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com> Co-authored-by: VipinDevelops <vipinchaudhary1809@gmail.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
This commit is contained in:
parent
d462546055
commit
83679806fd
33 changed files with 581 additions and 55 deletions
|
|
@ -3,7 +3,7 @@ import { action, computed, makeObservable, observable, runInAction } from "mobx"
|
|||
import { computedFn } from "mobx-utils";
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
// plane types
|
||||
import type { TFileEntityInfo, TFileSignedURLResponse } from "@plane/types";
|
||||
import type { EFileAssetType, TFileEntityInfo, TFileSignedURLResponse } from "@plane/types";
|
||||
// services
|
||||
import { FileService } from "@/services/file.service";
|
||||
import type { TAttachmentUploadStatus } from "../issue/issue-details/attachment.store";
|
||||
|
|
@ -27,6 +27,19 @@ export interface IEditorAssetStore {
|
|||
projectId?: string;
|
||||
workspaceSlug: string;
|
||||
}) => Promise<TFileSignedURLResponse>;
|
||||
duplicateEditorAsset: ({
|
||||
assetId,
|
||||
entityId,
|
||||
entityType,
|
||||
projectId,
|
||||
workspaceSlug,
|
||||
}: {
|
||||
assetId: string;
|
||||
entityId?: string;
|
||||
entityType: EFileAssetType;
|
||||
projectId?: string;
|
||||
workspaceSlug: string;
|
||||
}) => Promise<{ asset_id: string }>;
|
||||
}
|
||||
|
||||
export class EditorAssetStore implements IEditorAssetStore {
|
||||
|
|
@ -117,4 +130,13 @@ export class EditorAssetStore implements IEditorAssetStore {
|
|||
});
|
||||
}
|
||||
};
|
||||
duplicateEditorAsset: IEditorAssetStore["duplicateEditorAsset"] = async (args) => {
|
||||
const { assetId, entityId, entityType, projectId, workspaceSlug } = args;
|
||||
const { asset_id } = await this.fileService.duplicateAsset(workspaceSlug, assetId, {
|
||||
entity_id: entityId,
|
||||
entity_type: entityType,
|
||||
project_id: projectId,
|
||||
});
|
||||
return { asset_id };
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue