diff --git a/node_modules/api.js b/node_modules/api.js index 5a46588d..2eda1939 100644 --- a/node_modules/api.js +++ b/node_modules/api.js @@ -356,81 +356,41 @@ var Api = { IsMarkdown: note.isMarkdown, Tags: note.Tags, IsBlog: note.IsBlog, + Files: note.Files, + FileDatas: note.FileDatas } - log('add note'); + // log('add note'); // log(data); // files处理 - var files = note.Files; - var needTransferFiles = []; - var needPostFilesAttr = []; - async.eachSeries(files, function(file, cb) { - // var file = files[i]; - var needFile = { - FileId: file.ServerFileId, - LocalFileId: file.FileId, - HasBody: false - } - // console.log(file); - // 要传数据的 - if(file.IsDirty) { - fs.exists(file.Path, function(isExists) { - needTransferFiles[file.FileId] = { - file: file.Path, - content_type: 'image/' + file.Type - } - needFile.HasBody = true; - needPostFilesAttr.push(needFile); - return cb(); - }); - } else { - needPostFilesAttr.push(needFile); - return cb(); - } - }, function() { - data.Files = needPostFilesAttr; - var needMultiple = false; - for(var i in needTransferFiles) { - needMultiple = true; - data[i] = needTransferFiles[i]; - } - // 最终传递的数据 - console.log('end transfer data'); - console.log(data); - - needle.post(me.getUrl('note/addNote'), data, {multipart: needMultiple}, function(err, resp) { - if(err) { - return callback(false); - } - var ret = resp.body; - log('add note ret'); - log(ret); - if(Common.isOk(ret)) { - // 将serverId保存 - callback(ret); - } else { - callback(false); - } - }); - }); - - /* - var data = { - foo: 'bar', - cc: [1,2,3,3], - dd: {name: 'life', age: 18}, - image: { file: '/Users/life/Desktop/imageplus.png', content_type: 'image/png' } + var needMultiple = false; + for(var i in data.FileDatas) { + needMultiple = true; + break; } - needle.post('http://localhost/phpinfo.php', data, { multipart: true }, function(err, resp, body) { - // needle will read the file and include it in the form-data as binary - console.log(resp.body); + + // 最终传递的数据 + console.log('end transfer data'); + console.log(data); + + needle.post(me.getUrl('note/addNote'), data, {multipart: needMultiple}, function(err, resp) { + if(err) { + return callback(false); + } + var ret = resp.body; + log('add note ret'); + log(ret); + if(Common.isOk(ret)) { + // 将serverId保存 + callback(ret); + } else { + callback(false); + } }); - */ - - }); }, + // 更新 updateNote: function(note, callback) { var me = this; @@ -441,11 +401,21 @@ var Api = { title: note.Title, usn: note.Usn, isTrash: note.IsTrash, - content: note.Content + content: note.Content, + Files: note.Files, + FileDatas: note.FileDatas } - log('update note'); - log(data); - needle.post(me.getUrl('note/updateNote'), data, {}, function(err, resp) { + console.log('update note :'); + console.log(data); + + // files处理 + var needMultiple = false; + for(var i in data.FileDatas) { + needMultiple = true; + break; + } + + needle.post(me.getUrl('note/updateNote'), data, {multipart: needMultiple}, function(err, resp) { if(err) { log('err'); log(err); @@ -494,7 +464,6 @@ var Api = { log('delete note conflict: setNotDirty'); Note.setNotDirty(note.NoteId); } - } catch(e) {} } }); diff --git a/node_modules/file.js b/node_modules/file.js index 5bb564e1..70562a39 100644 --- a/node_modules/file.js +++ b/node_modules/file.js @@ -161,7 +161,7 @@ var File = { }, // 笔记添加/修改后会有LocalFileId <=> FileId映射 - updateFileForce(files) { + updateFileForce: function(files) { if(!files) { // callback && callback(false); return; diff --git a/node_modules/note.js b/node_modules/note.js index 43d566f7..2f4882e4 100644 --- a/node_modules/note.js +++ b/node_modules/note.js @@ -1,5 +1,6 @@ var async = require('async'); var db = require('db'); +var fs = require('fs'); var File = require('file'); var Evt = require('evt'); var User = require('user'); @@ -388,6 +389,7 @@ var Note = { note.InitSync = false; note.LocalIsNew = false; + // 如果是添加的, 因为不会传内容 if(isAdd) { delete note['content']; } @@ -551,6 +553,43 @@ var Note = { noteWeb.deleteSync(noteSyncInfo.deletes); }, + // 得到所有文件要传的基本信息和传送的数据 + getFilesPostInfo: function(files, callback) { + var needPostFilesAttr = []; + var needTransferFiles = {}; + if(!files || files.length == 0) { + return callback(needPostFilesAttr, needTransferFiles); + } + + async.eachSeries(files, function(file, cb) { + // var file = files[i]; + var needFile = { + FileId: file.ServerFileId, + LocalFileId: file.FileId, + Type: file.Type, + HasBody: false + } + // console.log(file); + // 要传数据的 + if(file.IsDirty) { + fs.exists(file.Path, function(isExists) { + needTransferFiles[file.FileId] = { + file: file.Path, + content_type: 'image/' + file.Type // TODO + } + needFile.HasBody = true; + needPostFilesAttr.push(needFile); + return cb(); + }); + } else { + needPostFilesAttr.push(needFile); + return cb(); + } + }, function() { + callback(needPostFilesAttr, needTransferFiles); + }); + }, + // 获得用户修改的笔记 getDirtyNotes: function(callback) { var me = this; @@ -563,12 +602,16 @@ var Note = { async.eachSeries(notes, function(note, cb) { me.getNoteFiles(note.NoteId, note.Content, function(files) { note.Content = me.fixNoteContentForSend(note.Content); - note.Files = files || []; - cb(); + // note.Files = files || []; + me.getFilesPostInfo(files, function(attrs, fileDatas) { + note.Files = attrs; + note.FileDatas = fileDatas; + cb(); + }); }); }, function() { callback(notes); - }) + }); } }); },