9 var fs = require('fs');
10 var Sequelize = require('sequelize');
11 var co = require('co');
12 var uuid = require('node-uuid');
24 * @returns {promise}<DBオブジェクトの関数群のオブジェクトをresolveする>
27 return new Promise(function(resolve) {
36 return Files.create(root);
40 sayHello: function() {
43 createFile: createFile,
46 removeFile: removeFile,
47 createDirectory: createDirectory,
48 removeDirectory: removeDirectory,
49 getFilename: getFilename,
51 moveDirectory: moveDirectory
63 * @param parentDirectory
64 * @returns {promise}<sequelize.createの結果を格納したobject | Error>
66 function createFile(fileName,parentDirectory) {
67 return new Promise(function(resolve, reject) {
70 name: parentDirectory,
77 return Promise.reject(new Error('parentDirectory doesn\'t exist.'));
84 parentDirectory: parentDirectory,
87 return Files.create(q)
89 .catch(function(error) {
100 * 同一ディレクトリに同名のファイルが存在するかどうか調べる
101 * @param {string}fileName
102 * @param {string}parentDirectory
105 function checkFile(fileName, parentDirectory) {
106 return new Promise(function(resolve, reject) {
110 parentDirectory: parentDirectory,
117 reject(new Error('parentDirectory doesn\'t exist.'));
125 function checkDirectory(directory) {
133 if(process.env['NODE_ENV'] === 'production') {
134 var dbPath = __dirname + '/../../user-specific-files/db/db.workspace';
135 dbOption.storage = dbPath;
137 // if doesn't exist workspace.db, create.
139 fs.accessSync(dbPath, fs.R_OK | fs.W_OK);
141 fs.writeFileSync(dbPath, '');
145 sequelize = new Sequelize('','','', dbOption);
147 var Files = sequelize.define('file', {
149 type: Sequelize.UUID,
154 type: Sequelize.STRING,
159 type: Sequelize.STRING,
160 field: 'parent_directory',
164 type: Sequelize.ENUM(0,1),