created a method to get actionType and targetType from feed action key
This commit is contained in:
parent
d4416586bb
commit
d9e0257ea1
@ -0,0 +1,177 @@
|
||||
enum FeedAction {
|
||||
Create = "create",
|
||||
Upload = "upload",
|
||||
Update = "update",
|
||||
Delete = "delete",
|
||||
Rename = "rename",
|
||||
Move = "move",
|
||||
Copy = "copy",
|
||||
}
|
||||
|
||||
enum FeedTarget {
|
||||
File = "file",
|
||||
Folder = "folder",
|
||||
Room = "room",
|
||||
RoomTag = "roomTag",
|
||||
RoomLogo = "roomLogo",
|
||||
RoomExternalLink = "roomExternalLink",
|
||||
User = "user",
|
||||
Group = "group",
|
||||
}
|
||||
|
||||
export type AnyFeedInfo = (typeof feedInfo)[number];
|
||||
|
||||
export type ActionByTarget<T extends `${FeedTarget}`> = Extract<
|
||||
AnyFeedInfo,
|
||||
{ targetType: T }
|
||||
>["actionType"];
|
||||
|
||||
export const feedInfo = [
|
||||
//
|
||||
// FILE
|
||||
{
|
||||
key: "FileCreated",
|
||||
targetType: `${FeedTarget.File}`,
|
||||
actionType: `${FeedAction.Create}`,
|
||||
},
|
||||
{
|
||||
key: "FileUploaded",
|
||||
targetType: `${FeedTarget.File}`,
|
||||
actionType: `${FeedAction.Upload}`,
|
||||
},
|
||||
{
|
||||
key: "UserFileUpdated",
|
||||
targetType: `${FeedTarget.File}`,
|
||||
actionType: `${FeedAction.Update}`,
|
||||
},
|
||||
{
|
||||
key: "FileRenamed",
|
||||
targetType: `${FeedTarget.File}`,
|
||||
actionType: `${FeedAction.Rename}`,
|
||||
},
|
||||
{
|
||||
key: "FileMoved",
|
||||
targetType: `${FeedTarget.File}`,
|
||||
actionType: `${FeedAction.Move}`,
|
||||
},
|
||||
{
|
||||
key: "FileCopied",
|
||||
targetType: `${FeedTarget.File}`,
|
||||
actionType: `${FeedAction.Copy}`,
|
||||
},
|
||||
{
|
||||
key: "FileDeleted",
|
||||
targetType: `${FeedTarget.File}`,
|
||||
actionType: `${FeedAction.Delete}`,
|
||||
},
|
||||
//
|
||||
// FOLDER
|
||||
{
|
||||
key: "FolderCreated",
|
||||
targetType: `${FeedTarget.Folder}`,
|
||||
actionType: `${FeedAction.Create}`,
|
||||
},
|
||||
{
|
||||
key: "FolderRenamed",
|
||||
targetType: `${FeedTarget.Folder}`,
|
||||
actionType: `${FeedAction.Rename}`,
|
||||
},
|
||||
{
|
||||
key: "FolderMoved",
|
||||
targetType: `${FeedTarget.Folder}`,
|
||||
actionType: `${FeedAction.Move}`,
|
||||
},
|
||||
{
|
||||
key: "FolderCopied",
|
||||
targetType: `${FeedTarget.Folder}`,
|
||||
actionType: `${FeedAction.Copy}`,
|
||||
},
|
||||
{
|
||||
key: "FolderDeleted",
|
||||
targetType: `${FeedTarget.Folder}`,
|
||||
actionType: `${FeedAction.Delete}`,
|
||||
},
|
||||
//
|
||||
// ROOM
|
||||
{
|
||||
key: "RoomCreated",
|
||||
targetType: `${FeedTarget.Room}`,
|
||||
actionType: `${FeedAction.Create}`,
|
||||
},
|
||||
{
|
||||
key: "RoomRenamed",
|
||||
targetType: `${FeedTarget.Room}`,
|
||||
actionType: `${FeedAction.Rename}`,
|
||||
},
|
||||
// ROOM TAGS
|
||||
{
|
||||
key: "AddedRoomTags",
|
||||
targetType: `${FeedTarget.RoomTag}`,
|
||||
actionType: `${FeedAction.Create}`,
|
||||
},
|
||||
{
|
||||
key: "DeletedRoomTags",
|
||||
targetType: `${FeedTarget.RoomTag}`,
|
||||
actionType: `${FeedAction.Delete}`,
|
||||
},
|
||||
// ROOM LOGO
|
||||
{
|
||||
key: "RoomLogoCreated",
|
||||
targetType: `${FeedTarget.RoomLogo}`,
|
||||
actionType: `${FeedAction.Create}`,
|
||||
},
|
||||
{
|
||||
key: "RoomLogoDeleted",
|
||||
targetType: `${FeedTarget.RoomLogo}`,
|
||||
actionType: `${FeedAction.Delete}`,
|
||||
},
|
||||
// ROOM EXTERNAL LINK
|
||||
{
|
||||
key: "RoomExternalLinkCreated",
|
||||
targetType: `${FeedTarget.RoomExternalLink}`,
|
||||
actionType: `${FeedAction.Create}`,
|
||||
},
|
||||
{
|
||||
key: "RoomExternalLinkDeleted",
|
||||
targetType: `${FeedTarget.RoomExternalLink}`,
|
||||
actionType: `${FeedAction.Delete}`,
|
||||
},
|
||||
//
|
||||
// USER
|
||||
{
|
||||
key: "RoomCreateUser",
|
||||
targetType: `${FeedTarget.User}`,
|
||||
actionType: `${FeedAction.Create}`,
|
||||
},
|
||||
{
|
||||
key: "RoomUpdateAccessForUser",
|
||||
targetType: `${FeedTarget.User}`,
|
||||
actionType: `${FeedAction.Update}`,
|
||||
},
|
||||
{
|
||||
key: "RoomRemoveUser",
|
||||
targetType: `${FeedTarget.User}`,
|
||||
actionType: `${FeedAction.Delete}`,
|
||||
},
|
||||
//
|
||||
// GROUP
|
||||
{
|
||||
key: "RoomGroupAdded",
|
||||
targetType: `${FeedTarget.Group}`,
|
||||
actionType: `${FeedAction.Create}`,
|
||||
},
|
||||
{
|
||||
key: "RoomUpdateAccessForGroup",
|
||||
targetType: `${FeedTarget.Group}`,
|
||||
actionType: `${FeedAction.Update}`,
|
||||
},
|
||||
{
|
||||
key: "RoomGroupRemove",
|
||||
targetType: `${FeedTarget.Group}`,
|
||||
actionType: `${FeedAction.Delete}`,
|
||||
},
|
||||
] as const;
|
||||
|
||||
export const getFeedInfo = (feed: { action: { key: AnyFeedInfo["key"] } }) => {
|
||||
return feedInfo.find((info) => info.key === feed.action.key)!;
|
||||
};
|
Loading…
Reference in New Issue
Block a user