mirror of
https://github.com/plankanban/planka.git
synced 2025-07-19 13:19:44 +02:00
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
/*!
|
|
* Copyright (c) 2024 PLANKA Software GmbH
|
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
|
*/
|
|
|
|
/**
|
|
* file-manager hook
|
|
*
|
|
* @description :: A hook definition. Extends Sails by adding shadow routes, implicit actions,
|
|
* and/or initialization logic.
|
|
* @docs :: https://sailsjs.com/docs/concepts/extending-sails/hooks
|
|
*/
|
|
|
|
const LocalFileManager = require('./LocalFileManager');
|
|
const S3FileManager = require('./S3FileManager');
|
|
|
|
module.exports = function defineFileManagerHook(sails) {
|
|
let instance = null;
|
|
|
|
const createInstance = () => {
|
|
instance = sails.hooks.s3.isEnabled()
|
|
? new S3FileManager(sails.hooks.s3.getClient())
|
|
: new LocalFileManager();
|
|
};
|
|
|
|
return {
|
|
/**
|
|
* Runs when this Sails app loads/lifts.
|
|
*/
|
|
|
|
async initialize() {
|
|
sails.log.info('Initializing custom hook (`file-manager`)');
|
|
|
|
return new Promise((resolve) => {
|
|
sails.after('hook:s3:loaded', () => {
|
|
createInstance();
|
|
resolve();
|
|
});
|
|
});
|
|
},
|
|
|
|
getInstance() {
|
|
return instance;
|
|
},
|
|
};
|
|
};
|