diff options
author | Chocobozzz <me@florianbigard.com> | 2019-07-16 11:33:22 +0200 |
---|---|---|
committer | Chocobozzz <chocobozzz@cpy.re> | 2019-07-24 10:58:16 +0200 |
commit | 6702a1b2ccd666285dee9c72b5bace641d2fce8b (patch) | |
tree | 78b7125d664b6f6b6c993c4e8483e1bdd24a0a30 /server/models | |
parent | 503c6f440abc8f5924c38c4bd63591cb6cefacec (diff) | |
download | PeerTube-6702a1b2ccd666285dee9c72b5bace641d2fce8b.tar.gz PeerTube-6702a1b2ccd666285dee9c72b5bace641d2fce8b.tar.zst PeerTube-6702a1b2ccd666285dee9c72b5bace641d2fce8b.zip |
Add ability to search available plugins
Diffstat (limited to 'server/models')
-rw-r--r-- | server/models/server/plugin.ts | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/server/models/server/plugin.ts b/server/models/server/plugin.ts index bd3d7a81e..ba43713f6 100644 --- a/server/models/server/plugin.ts +++ b/server/models/server/plugin.ts | |||
@@ -10,6 +10,7 @@ import { | |||
10 | import { PluginType } from '../../../shared/models/plugins/plugin.type' | 10 | import { PluginType } from '../../../shared/models/plugins/plugin.type' |
11 | import { PeerTubePlugin } from '../../../shared/models/plugins/peertube-plugin.model' | 11 | import { PeerTubePlugin } from '../../../shared/models/plugins/peertube-plugin.model' |
12 | import { FindAndCountOptions, json } from 'sequelize' | 12 | import { FindAndCountOptions, json } from 'sequelize' |
13 | import { PeerTubePluginIndex } from '../../../shared/models/plugins/peertube-plugin-index.model' | ||
13 | 14 | ||
14 | @DefaultScope(() => ({ | 15 | @DefaultScope(() => ({ |
15 | attributes: { | 16 | attributes: { |
@@ -177,7 +178,7 @@ export class PluginModel extends Model<PluginModel> { | |||
177 | } | 178 | } |
178 | 179 | ||
179 | static listForApi (options: { | 180 | static listForApi (options: { |
180 | type?: PluginType, | 181 | pluginType?: PluginType, |
181 | uninstalled?: boolean, | 182 | uninstalled?: boolean, |
182 | start: number, | 183 | start: number, |
183 | count: number, | 184 | count: number, |
@@ -193,7 +194,7 @@ export class PluginModel extends Model<PluginModel> { | |||
193 | } | 194 | } |
194 | } | 195 | } |
195 | 196 | ||
196 | if (options.type) query.where['type'] = options.type | 197 | if (options.pluginType) query.where['type'] = options.pluginType |
197 | 198 | ||
198 | return PluginModel | 199 | return PluginModel |
199 | .findAndCountAll(query) | 200 | .findAndCountAll(query) |
@@ -202,8 +203,18 @@ export class PluginModel extends Model<PluginModel> { | |||
202 | }) | 203 | }) |
203 | } | 204 | } |
204 | 205 | ||
205 | static normalizePluginName (name: string) { | 206 | static listInstalled () { |
206 | return name.replace(/^peertube-((theme)|(plugin))-/, '') | 207 | const query = { |
208 | where: { | ||
209 | uninstalled: false | ||
210 | } | ||
211 | } | ||
212 | |||
213 | return PluginModel.findAll(query) | ||
214 | } | ||
215 | |||
216 | static normalizePluginName (npmName: string) { | ||
217 | return npmName.replace(/^peertube-((theme)|(plugin))-/, '') | ||
207 | } | 218 | } |
208 | 219 | ||
209 | static getTypeFromNpmName (npmName: string) { | 220 | static getTypeFromNpmName (npmName: string) { |