-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathAiGifApp.ts
83 lines (77 loc) · 2.44 KB
/
AiGifApp.ts
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import {
IAppAccessors,
IAppInstallationContext,
IConfigurationExtend,
IEnvironmentRead,
IHttp,
ILogger,
IModify,
IPersistence,
IRead,
} from "@rocket.chat/apps-engine/definition/accessors";
import { App } from "@rocket.chat/apps-engine/definition/App";
import { IAppInfo } from "@rocket.chat/apps-engine/definition/metadata";
import { settings } from "./src/enum/Preferences";
import { GenGifCommand } from "./src/commands/GenGifCommand";
import {
ApiSecurity,
ApiVisibility,
} from "@rocket.chat/apps-engine/definition/api";
import { GifStatusUpdateEndpoint } from "./src/endpoints/GifStatusUpdateEndpoint";
import {
IUIKitResponse,
UIKitBlockInteractionContext,
} from "@rocket.chat/apps-engine/definition/uikit";
import { ExecuteBlockActionHandler } from "./src/handlers/ExecuteBlockActionHandler";
import { sendHelperMessageOnInstall } from "./src/utils/message";
export class AiGifApp extends App {
constructor(info: IAppInfo, logger: ILogger, accessors: IAppAccessors) {
super(info, logger, accessors);
}
async initialize(
configurationExtend: IConfigurationExtend,
environmentRead: IEnvironmentRead
): Promise<void> {
await configurationExtend.slashCommands.provideSlashCommand(
new GenGifCommand(this)
);
await Promise.all(
settings.map((setting) => {
configurationExtend.settings.provideSetting(setting);
})
);
await configurationExtend.api.provideApi({
visibility: ApiVisibility.PUBLIC,
security: ApiSecurity.UNSECURE,
endpoints: [new GifStatusUpdateEndpoint(this)],
});
}
public async executeBlockActionHandler(
context: UIKitBlockInteractionContext,
read: IRead,
http: IHttp,
persis: IPersistence,
modify: IModify
): Promise<IUIKitResponse> {
const handler = new ExecuteBlockActionHandler(
this,
read,
http,
persis,
modify,
context
);
return handler.handleActions();
}
public async onInstall(
context: IAppInstallationContext,
read: IRead,
http: IHttp,
persistence: IPersistence,
modify: IModify
): Promise<void> {
const { user } = context;
await sendHelperMessageOnInstall(this.getID(), user, read, modify);
return;
}
}