-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhook.cloud.templates.java.json
49 lines (49 loc) · 25.8 KB
/
hook.cloud.templates.java.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
"global": {
"beforeRequest": "package io.fireboom.global;\n\nimport io.fireboom.plugins.GlobalHooks;\nimport io.fireboom.server.global.OnRequestHookPayload;\nimport io.fireboom.server.global.OnRequestHookResponse;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component\npublic class BeforeOriginRequest extends GlobalHooks implements GlobalHooks.BeforeOriginRequest {\n\n @Override\n public OnRequestHookResponse execute(OnRequestHookPayload body) {\n return new OnRequestHookResponse(false, body.getRequest(), false);\n }\n}\n",
"onRequest": "package io.fireboom.global;\n\nimport io.fireboom.plugins.GlobalHooks;\nimport io.fireboom.server.global.OnRequestHookPayload;\nimport io.fireboom.server.global.OnRequestHookResponse;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component\npublic class OnOriginRequest extends GlobalHooks implements GlobalHooks.OnOriginRequest {\n\n @Override\n public OnRequestHookResponse execute(OnRequestHookPayload body) {\n return new OnRequestHookResponse(false, body.getRequest(), false);\n }\n}\n",
"onResponse": "package io.fireboom.global;\n\nimport io.fireboom.plugins.GlobalHooks;\nimport io.fireboom.server.global.OnResponseHookPayload;\nimport io.fireboom.server.global.OnResponseHookResponse;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component\npublic class OnOriginResponse extends GlobalHooks implements GlobalHooks.OnOriginResponse {\n\n @Override\n public OnResponseHookResponse execute(OnResponseHookPayload body) {\n return new OnResponseHookResponse(false, body.getResponse(), false);\n }\n}\n",
"onConnectionInit": "package io.fireboom.global;\n\nimport io.fireboom.plugins.GlobalHooks;\nimport io.fireboom.server.global.OnWsConnectionInitHookPayload;\nimport io.fireboom.server.global.OnWsConnectionInitHookResponse;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component\npublic class OnConnectionInit extends GlobalHooks implements GlobalHooks.OnConnectionInit {\n\n @Override\n public OnWsConnectionInitHookResponse execute(OnWsConnectionInitHookPayload body) {\n return new OnWsConnectionInitHookResponse(\"ok\");\n }\n}\n"
},
"authentication": {
"postAuthentication": "package io.fireboom.authentication;\n\nimport io.fireboom.plugins.AuthenticationHooks;\nimport io.fireboom.server.hook.BaseRequestBodyWg;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component\npublic class PostAuthentication extends AuthenticationHooks implements AuthenticationHooks.PostAuthentication {\n\n @Override\n public void execute(BaseRequestBodyWg body) {\n\n }\n}\n",
"mutatingPostAuthentication": "package io.fireboom.authentication;\n\nimport io.fireboom.plugins.AuthenticationHooks;\nimport io.fireboom.server.authentication.MutatingPostAuthenticationResponse;\nimport io.fireboom.server.hook.BaseRequestBodyWg;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component\npublic class MutatingPostAuthentication extends AuthenticationHooks implements AuthenticationHooks.MutatingPostAuthentication {\n\n @Override\n public MutatingPostAuthenticationResponse execute(BaseRequestBodyWg body) {\n return new MutatingPostAuthenticationResponse(null, \"ok\", body.getUser());\n }\n}\n",
"revalidateAuthentication": "package io.fireboom.authentication;\n\nimport io.fireboom.plugins.AuthenticationHooks;\nimport io.fireboom.server.authentication.MutatingPostAuthenticationResponse;\nimport io.fireboom.server.hook.BaseRequestBodyWg;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component\npublic class RevalidateAuthentication extends AuthenticationHooks implements AuthenticationHooks.RevalidateAuthentication {\n\n @Override\n public MutatingPostAuthenticationResponse execute(BaseRequestBodyWg body) {\n return new MutatingPostAuthenticationResponse(null, \"ok\", body.getUser());\n }\n}\n",
"postLogout": "package io.fireboom.authentication;\n\nimport io.fireboom.plugins.AuthenticationHooks;\nimport io.fireboom.server.hook.BaseRequestBodyWg;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component\npublic class PostLogout extends AuthenticationHooks implements AuthenticationHooks.PostLogout {\n\n @Override\n public void execute(BaseRequestBodyWg body) {\n\n }\n}\n"
},
"hook": {
"WithInput": {
"mockResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/MockResolve\")\npublic class MockResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"preResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/PreResolve\")\npublic class PreResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"mutatingPreResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/MutatingPreResolve\")\npublic class MutatingPreResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"postResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/PostResolve\")\npublic class PostResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"customResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/CustomResolve\")\npublic class CustomResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"mutatingPostResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/MutatingPostResolve\")\npublic class MutatingPostResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n"
},
"WithoutInput": {
"mockResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/MockResolve\")\npublic class MockResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"preResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/PreResolve\")\npublic class PreResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"mutatingPreResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/MutatingPreResolve\")\npublic class MutatingPreResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"postResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/PostResolve\")\npublic class PostResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"customResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/CustomResolve\")\npublic class CustomResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n",
"mutatingPostResolve": "package io.fireboom.operation.$HOOK_NAME$;\n\nimport io.fireboom.entity.InternalInput.$HOOK_NAME$InternalInput;\nimport io.fireboom.entity.ResponseData.$HOOK_NAME$ResponseData;\nimport io.fireboom.module.InternalRequests;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"operation/$HOOK_NAME$/MutatingPostResolve\")\npublic class MutatingPostResolve extends OperationHooks<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> {\n\n @Override\n protected OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> execute(OperationHookBody<$HOOK_NAME$InternalInput, $HOOK_NAME$ResponseData> body) {\n return body;\n }\n}\n"
}
},
"custom": {
"customize": "package io.fireboom.customize;\n\nimport io.fireboom.plugins.CustomizeHooks;\nimport graphql.Scalars;\nimport graphql.schema.*;\nimport lombok.AllArgsConstructor;\nimport lombok.Data;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\nimport java.util.Arrays;\n\n@Slf4j\n@Component(value = \"customize/$CUSTOMIZE_NAME$\")\npublic class $CUSTOMIZE_NAME$ extends CustomizeHooks {\n GraphQLObjectType bookType = GraphQLObjectType.newObject()\n .name(\"Book\")\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"id\")\n .type(Scalars.GraphQLID))\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"title\")\n .type(Scalars.GraphQLString))\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"author\")\n .type(Scalars.GraphQLString))\n .build();\n GraphQLObjectType queryType = GraphQLObjectType.newObject()\n .name(\"Query\")\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"books\")\n .type(new GraphQLList(bookType))\n .dataFetcher(environment -> {\n // 在这里编写获取图书数据的逻辑\n // 这里简单返回一个示例数据\n return Arrays.asList(new Book(\"1\", \"Book 1\", \"Author 1\"),\n new Book(\"2\", \"Book 2\", \"Author 2\"));\n }))\n .build();\n GraphQLObjectType subscriptionType = GraphQLObjectType.newObject()\n .name(\"Subscription\")\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"book\")\n .type(bookType)\n .argument(GraphQLArgument.newArgument()\n .name(\"channel\")\n .type(Scalars.GraphQLString))\n .dataFetcher(environment -> {\n // 在这里编写订阅新消息的逻辑\n // 这里简单返回一个新创建的消息对象\n return new Book(\"1\", \"Book 1\", \"Author 1\");\n }))\n .build();\n\n\n GraphQLSchema schema = GraphQLSchema.newSchema().query(queryType).subscription(subscriptionType).build();\n\n @Override\n protected GraphQLSchema schema() {\n return schema;\n }\n\n @Data\n @AllArgsConstructor\n static class Book {\n private String id;\n private String title;\n private String author;\n }\n}\n",
"function": "package io.fireboom.$PACKAGE_NAME$;\n\nimport io.fireboom.plugins.FunctionHooks;\nimport io.fireboom.plugins.OperationHooks;\nimport lombok.Data;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"$PACKAGE_NAME$/$FUNCTION_NAME$\")\npublic class $FUNCTION_NAME$ extends FunctionHooks<Test.Input, Test.Output> {\n\n @Override\n protected OperationHooks.OperationHookBody<Test.Input, Test.Output> execute(OperationHooks.OperationHookBody<Test.Input, Test.Output> body) {\n return body;\n }\n\n @Data\n static class Input {\n private String name;\n }\n\n @Data\n static class Output {\n private String name;\n }\n}\n",
"proxy": "package io.fireboom.$PACKAGE_NAME$;\n\nimport io.fireboom.plugins.ProxyHooks;\nimport io.fireboom.server.global.OnRequestHookPayload;\nimport io.fireboom.server.global.OnResponseHookResponse;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"$PACKAGE_NAME$/$PROXY_NAME$\")\npublic class $PROXY_NAME$ extends ProxyHooks {\n\n @Override\n protected OnResponseHookResponse execute(OnRequestHookPayload body) {\n return new OnResponseHookResponse(false, null, false);\n }\n}\n"
},
"example": {
"custom": [
{
"name": "示例数据源",
"code": "package io.fireboom.customize;\n\nimport io.fireboom.plugins.CustomizeHooks;\nimport graphql.Scalars;\nimport graphql.schema.*;\nimport lombok.AllArgsConstructor;\nimport lombok.Data;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\nimport java.util.Arrays;\n\n@Slf4j\n@Component(value = \"customize/$CUSTOMIZE_NAME$\")\npublic class $CUSTOMIZE_NAME$ extends CustomizeHooks {\n GraphQLObjectType bookType = GraphQLObjectType.newObject()\n .name(\"Book\")\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"id\")\n .type(Scalars.GraphQLID))\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"title\")\n .type(Scalars.GraphQLString))\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"author\")\n .type(Scalars.GraphQLString))\n .build();\n GraphQLObjectType queryType = GraphQLObjectType.newObject()\n .name(\"Query\")\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"books\")\n .type(new GraphQLList(bookType))\n .dataFetcher(environment -> {\n // 在这里编写获取图书数据的逻辑\n // 这里简单返回一个示例数据\n return Arrays.asList(new Book(\"1\", \"Book 1\", \"Author 1\"),\n new Book(\"2\", \"Book 2\", \"Author 2\"));\n }))\n .build();\n GraphQLObjectType subscriptionType = GraphQLObjectType.newObject()\n .name(\"Subscription\")\n .field(GraphQLFieldDefinition.newFieldDefinition()\n .name(\"book\")\n .type(bookType)\n .argument(GraphQLArgument.newArgument()\n .name(\"channel\")\n .type(Scalars.GraphQLString))\n .dataFetcher(environment -> {\n // 在这里编写订阅新消息的逻辑\n // 这里简单返回一个新创建的消息对象\n return new Book(\"1\", \"Book 1\", \"Author 1\");\n }))\n .build();\n\n\n GraphQLSchema schema = GraphQLSchema.newSchema().query(queryType).subscription(subscriptionType).build();\n\n @Override\n protected GraphQLSchema schema() {\n return schema;\n }\n\n @Data\n @AllArgsConstructor\n static class Book {\n private String id;\n private String title;\n private String author;\n }\n}\n"
}
]
},
"upload": {
"preUpload": "package io.fireboom.storage.$STORAGE_NAME$.$PROFILE_NAME;\n\nimport io.fireboom.entity.UploadProfile.$STORAGE_NAME$_$PROFILE_NAMEProfileMeta;\nimport io.fireboom.plugins.UploadProfileHooks;\nimport io.fireboom.server.storage.UploadHookResponse;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"storage/$STORAGE_NAME$/$PROFILE_NAME/PreUpload\")\npublic class PreUpload extends UploadProfileHooks<$STORAGE_NAME$_$PROFILE_NAMEProfileMeta> {\n\n @Override\n protected UploadHookResponse execute(UploadBody<$STORAGE_NAME$_$PROFILE_NAMEProfileMeta> body) {\n return new UploadHookResponse(null, body.getFile().getName());\n }\n}\n",
"postUpload": "package io.fireboom.storage.$STORAGE_NAME$.$PROFILE_NAME;\n\nimport io.fireboom.entity.UploadProfile.$STORAGE_NAME$_$PROFILE_NAMEProfileMeta;\nimport io.fireboom.plugins.UploadProfileHooks;\nimport io.fireboom.server.storage.UploadHookResponse;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\n\n@Slf4j\n@Component(value = \"storage/$STORAGE_NAME$/$PROFILE_NAME/PostUpload\")\npublic class PostUpload extends UploadProfileHooks<$STORAGE_NAME$_$PROFILE_NAMEProfileMeta> {\n\n @Override\n protected UploadHookResponse execute(UploadBody<$STORAGE_NAME$_$PROFILE_NAMEProfileMeta> body) {\n return new UploadHookResponse(null, body.getFile().getName());\n }\n}\n"
}
}