* Atom / RSS meta link * Spike * Feeling good about this spike now * Remove document.collection * Remove koa.ctx from all presenters to make them portable outside requests * Remove full serialized model from events Move events.add to controllers for now, will eventually be in commands * collections.create event parentDocument -> parentDocumentId * Fix up deprecated tests * Fixed: Doc creation * documents.move * Handle collection deleted * 💚 * Authorize room join requests * Move starred data structure Account for documents with no context on sockets * Add socket.io-redis * Add WEBSOCKETS_ENABLED env variable to disable websockets entirely for self hosted New installations will default to true, existing installations to false * 💚 No need for promise response here * Reload notice
43 lines
805 B
JavaScript
43 lines
805 B
JavaScript
// @flow
|
|
import Document from '../models/Document';
|
|
|
|
type Options = {
|
|
file: File,
|
|
documents: *,
|
|
collectionId: string,
|
|
documentId?: string,
|
|
};
|
|
|
|
const importFile = async ({
|
|
documents,
|
|
file,
|
|
documentId,
|
|
collectionId,
|
|
}: Options): Promise<Document> => {
|
|
return new Promise((resolve, reject) => {
|
|
const reader = new FileReader();
|
|
|
|
reader.onload = async ev => {
|
|
const text = ev.target.result;
|
|
|
|
let document = new Document(
|
|
{
|
|
parentDocumentId: documentId,
|
|
collectionId,
|
|
text,
|
|
},
|
|
documents
|
|
);
|
|
try {
|
|
document = await document.save({ publish: true });
|
|
resolve(document);
|
|
} catch (err) {
|
|
reject(err);
|
|
}
|
|
};
|
|
reader.readAsText(file);
|
|
});
|
|
};
|
|
|
|
export default importFile;
|