1
- import { stripIndent } from "common-tags" ;
2
- import prompt from "prompt" ;
3
- import { CacheAdmin } from "../Cache/Admin.cache" ;
4
- import { cron_chargeStripePayment , cron_notifyInvoices , cron_notifyLateInvoicePaid } from "../Cron/Methods/Invoices.cron.methods" ;
5
- import AdminModel from "../Database/Models/Administrators.model" ;
6
- import ConfigModel from "../Database/Models/Configs.model" ;
7
1
import Logger from "../Lib/Logger" ;
8
- import { getPlugins , installPlugin } from "../Plugins/PluginHandler" ;
9
- import createAdmin from "./CreateAdmin" ;
10
2
import chalk from "chalk" ;
11
3
import clear from "clear" ;
12
4
import figlet from "figlet" ;
13
5
import Prompt , { cacheCommands } from "./Commands/Prompt" ;
14
6
import inquirer from 'inquirer' ;
15
7
16
- export interface ICommandsAdmin
17
- {
18
- [ key : string ] : {
19
- description : string ;
20
- method : any ;
21
- [ key : string ] : any ;
22
- }
23
- }
24
-
25
8
export default class AdminHandler
26
9
{
27
10
@@ -35,6 +18,8 @@ export default class AdminHandler
35
18
} )
36
19
)
37
20
)
21
+ inquirer . registerPrompt ( 'search-list' , require ( 'inquirer-search-list' ) ) ;
22
+ inquirer . registerPrompt ( 'search-checkbox' , require ( 'inquirer-search-checkbox' ) ) ;
38
23
this . action ( ) ;
39
24
}
40
25
@@ -67,178 +52,9 @@ export default class AdminHandler
67
52
}
68
53
} ) . catch ( ( error ) =>
69
54
{
70
- console . log ( error )
71
- } ) ;
72
- }
73
-
74
-
75
- private async show_emails ( )
76
- {
77
- return new Promise ( async ( resolve , ) =>
78
- {
79
- // Get our config from database
80
- const config = ( await ConfigModel . find ( ) ) [ 0 ] ;
81
- Logger . info ( `Emails:` , config . smtp_emails ) ;
82
- resolve ( true ) ;
83
- } ) ;
84
- }
85
-
86
- private async add_email ( )
87
- {
88
- return new Promise ( ( resolve ) =>
89
- {
90
- prompt . get ( [
91
- {
92
- name : "email" ,
93
- description : "Email for administrator" ,
94
- required : true
95
- } ,
96
- ] , async ( err , result ) =>
97
- {
98
- const email = result . email as string ;
99
- Logger . info ( `Adding email..` ) ;
100
- // Check if email is valid
101
- // eslint-disable-next-line no-useless-escape
102
- if ( ! email . match ( / ^ ( ( [ ^ < > ( ) \[ \] \\ . , ; : \s @ " ] + ( \. [ ^ < > ( ) \[ \] \\ . , ; : \s @ " ] + ) * ) | ( " .+ " ) ) @ ( ( \[ [ 0 - 9 ] { 1 , 3 } \. [ 0 - 9 ] { 1 , 3 } \. [ 0 - 9 ] { 1 , 3 } \. [ 0 - 9 ] { 1 , 3 } ] ) | ( ( [ a - z A - Z \- 0 - 9 ] + \. ) + [ a - z A - Z ] { 2 , } ) ) $ / ) )
103
- {
104
- Logger . error ( `Invalid email` ) ;
105
- return resolve ( false ) ;
106
- }
107
- // Get our config from database
108
- const config = ( await ConfigModel . find ( ) ) [ 0 ] ;
109
-
110
- config . smtp_emails . push ( email ) ;
111
-
112
- // Save our config
113
- await config . save ( ) ;
114
- return resolve ( true )
115
- } ) ;
116
- } ) ;
117
- }
118
-
119
- private async delete_email ( )
120
- {
121
- return new Promise ( ( resolve ) =>
122
- {
123
- prompt . get ( [
124
- {
125
- name : "email" ,
126
- description : "Email for administrator" ,
127
- required : true
128
- } ,
129
- ] , async ( err , result ) =>
130
- {
131
- const email = result . email as string ;
132
- Logger . info ( `Deleting email..` ) ;
133
- // Get our config from database
134
- const config = ( await ConfigModel . find ( ) ) [ 0 ] ;
135
-
136
- // Remove email
137
- config . smtp_emails = config . smtp_emails . filter ( e => e !== email ) ;
138
-
139
- // Save our config
140
- await config . save ( ) ;
141
- return resolve ( true )
142
- } ) ;
55
+ Logger . error ( error ) ;
56
+ this . action ( ) ;
143
57
} ) ;
144
58
}
145
59
146
-
147
- private async add_webhook ( )
148
- {
149
- return new Promise ( ( resolve ) =>
150
- {
151
- prompt . get ( [
152
- {
153
- name : "url" ,
154
- description : "URL for webhook" ,
155
- required : true
156
- } ,
157
- ] , async ( err , result ) =>
158
- {
159
- const url = result . url as string ;
160
- Logger . info ( `Adding webhook..` ) ;
161
- // Get our config from database
162
- const config = ( await ConfigModel . find ( ) ) [ 0 ] ;
163
-
164
- // Add webhook
165
- config . webhooks_urls . push ( url ) ;
166
-
167
- // Save our config
168
- await config . save ( ) ;
169
- return resolve ( true )
170
- } ) ;
171
- } ) ;
172
- }
173
-
174
- private async delete_webhook ( )
175
- {
176
- return new Promise ( ( resolve ) =>
177
- {
178
- prompt . get ( [
179
- {
180
- name : "url" ,
181
- description : "URL for webhook" ,
182
- required : true
183
- } ,
184
- ] , async ( err , result ) =>
185
- {
186
- const url = result . url as string ;
187
- Logger . info ( `Deleting webhook..` ) ;
188
- // Get our config from database
189
- const config = ( await ConfigModel . find ( ) ) [ 0 ] ;
190
-
191
- // Remove webhook
192
- config . webhooks_urls = config . webhooks_urls . filter ( ( e : any ) => e !== url ) ;
193
-
194
- // Save our config
195
- await config . save ( ) ;
196
- return resolve ( true )
197
- } ) ;
198
- } ) ;
199
- }
200
-
201
- private async show_webhooks ( )
202
- {
203
- return new Promise ( async ( resolve ) =>
204
- {
205
- // Get our config from database
206
- const config = ( await ConfigModel . find ( ) ) [ 0 ] ;
207
- Logger . info ( `Webhooks:` , config . webhooks_urls ) ;
208
- resolve ( true ) ;
209
- } ) ;
210
- }
211
-
212
- private async show_plugins ( )
213
- {
214
- return new Promise ( async ( resolve ) =>
215
- {
216
- // Get our config from database
217
- const plugins = getPlugins ( )
218
- Logger . info ( `Plugins:` , ...plugins ) ;
219
- resolve ( true ) ;
220
- } ) ;
221
- }
222
-
223
- private async update_plugin ( )
224
- {
225
- return new Promise ( async ( resolve ) =>
226
- {
227
- prompt . get ( [
228
- {
229
- name : "plugin" ,
230
- description : "Plugin" ,
231
- required : false ,
232
- type : "string" ,
233
- } ,
234
- ] , async ( err , result ) =>
235
- {
236
- Logger . info ( `Updating plugins..` ) ;
237
- const plugin = result . plugin as string ;
238
- if ( plugin )
239
- await installPlugin ( `${ plugin } @latest` ) ;
240
- return resolve ( true )
241
- } ) ;
242
- } ) ;
243
- }
244
60
}
0 commit comments