mirror of
https://github.com/leanote/desktop-app.git
synced 2025-10-15 07:31:33 +00:00
179 lines
4.9 KiB
JavaScript
179 lines
4.9 KiB
JavaScript
var db = require('db');
|
|
var Common = require('common');
|
|
var User = require('user');
|
|
var Tags = db.tags;
|
|
var needle = require('needle');
|
|
var fs = require('fs');
|
|
|
|
function log(o) {
|
|
console.log(o);
|
|
}
|
|
|
|
// 远程数据服务
|
|
var Api = {
|
|
leanoteUrl: 'http://localhost:9000',
|
|
baseUrl: 'http://localhost:9000/api',
|
|
getUrl: function(url, param) {
|
|
var url = this.baseUrl + '/' + url;
|
|
var token = User.getToken();
|
|
param = param || {};
|
|
param.token = token;
|
|
if(param) {
|
|
var paramStr = '';
|
|
for(var i in param) {
|
|
paramStr += i + '=' + param[i] + '&';
|
|
}
|
|
}
|
|
if(url.indexOf('?') >= 0) {
|
|
return url + '&' + paramStr;
|
|
}
|
|
return url + '?' + paramStr;
|
|
},
|
|
// 登录
|
|
auth: function(email, pwd, callback) {
|
|
var me = this;
|
|
log({emai: email, pwd: pwd});
|
|
needle.get(this.getUrl('auth/login', {email: email, pwd: pwd}), function(error, response) {
|
|
// needle.get('http://localhost/phpinfo.php?email=xx', {emai: email, pwd: pwd}, function(error, response) {
|
|
var ret = response.body;
|
|
// 登录成功, 保存token
|
|
log(ret);
|
|
if(Common.isOk(ret)) {
|
|
ret.Pwd = pwd;
|
|
User.setCurUser(ret);
|
|
callback && callback(ret);
|
|
} else {
|
|
log('log failed');
|
|
callback && callback(false);
|
|
}
|
|
});
|
|
},
|
|
post: function() {
|
|
var me = this;
|
|
var options = {
|
|
headers: { 'X-Custom-Header': 'Bumbaway atuna' }
|
|
}
|
|
// you can pass params as a string or as an object.
|
|
needle.post(me.getUrl('auth/login'), 'foo=bar', options, function(err, resp) {
|
|
var ret = resp.body;
|
|
log(ret);
|
|
});
|
|
},
|
|
// get图片
|
|
getImageTest: function(callback) {
|
|
needle.get('http://localhost:9000/images/logo.png', function(err, resp) {
|
|
// log(resp.body);
|
|
/*
|
|
{ 'accept-ranges': 'bytes',
|
|
'content-disposition': 'inline; filename="logo.png"',
|
|
'content-length': '8583',
|
|
'content-type': 'image/png',
|
|
date: 'Mon, 19 Jan 2015 15:01:47 GMT',
|
|
*/
|
|
// log(resp.headers);
|
|
fs.writeFile('/Users/life/Desktop/aa.png', resp.body);
|
|
});
|
|
},
|
|
uploadImage: function() {
|
|
var data = {
|
|
foo: 'bar',
|
|
image: { file: '/Users/life/Desktop/aa.png', content_type: 'image/png' }
|
|
}
|
|
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
|
|
});
|
|
},
|
|
getSyncNotebooks: function(afterUsn, maxEntry, callback) {
|
|
var me = this;
|
|
var url = this.getUrl('notebook/getSyncNotebooks', {afterUsn: afterUsn, maxEntry: maxEntry});
|
|
needle.get(url, function(error, response) {
|
|
var ret = response.body;
|
|
if(Common.isOk(ret)) {
|
|
callback && callback(ret);
|
|
} else {
|
|
callback && callback(false);
|
|
}
|
|
});
|
|
},
|
|
getSyncNotes: function(afterUsn, maxEntry, callback) {
|
|
var me = this;
|
|
var url = this.getUrl('note/getSyncNotes', {afterUsn: afterUsn, maxEntry: maxEntry});
|
|
log(url);
|
|
needle.get(url, function(error, response) {
|
|
var ret = response.body;
|
|
if(Common.isOk(ret)) {
|
|
callback && callback(ret);
|
|
} else {
|
|
callback && callback(false);
|
|
}
|
|
});
|
|
},
|
|
// 获取笔记内容, 获取之后保存到笔记中
|
|
getNoteContent: function(noteId, callback) {
|
|
var me = this;
|
|
var url = this.getUrl('note/getNoteContent', {noteId: noteId});
|
|
log(url);
|
|
needle.get(url, function(error, response) {
|
|
var ret = response.body;
|
|
log('--------')
|
|
log(ret);
|
|
if(Common.isOk(ret)) { // {Content: 'xx', NoteId: 'xxx'}
|
|
// Note.updateNoteContentForce(noteId, ret.Content, function() {
|
|
callback && callback(ret);
|
|
// });
|
|
} else {
|
|
callback && callback(false);
|
|
}
|
|
});
|
|
},
|
|
|
|
// TODO
|
|
// get图片, 获取内容后, 得到所有图片链接, 异步去获取图片, 并修改图片链接,
|
|
// 将https://leanote.com/api/resource/getImage?imageId=xx
|
|
// 转成app://leanote/public/files, 内部可以是个服务器吗? 请求内部的controller
|
|
getImage: function(fileId, callback) {
|
|
var me = this;
|
|
var url = me.getUrl('file/getImage', {fileId: fileId});
|
|
log(url);
|
|
needle.get(url, function(err, resp) {
|
|
// log(resp.body);
|
|
/*
|
|
{ 'accept-ranges': 'bytes',
|
|
'content-disposition': 'inline; filename="logo.png"',
|
|
'content-length': '8583',
|
|
'content-type': 'image/png',
|
|
date: 'Mon, 19 Jan 2015 15:01:47 GMT',
|
|
*/
|
|
// log(resp.headers);
|
|
if(err) {
|
|
callback(false);
|
|
} else {
|
|
var typeStr = resp.headers['content-type'];
|
|
log(resp.headers);
|
|
log(typeStr);
|
|
var type = 'png';
|
|
if(typeStr) {
|
|
var typeArr = typeStr.split('/');
|
|
if(typeStr.length > 1) {
|
|
type = typeArr[1];
|
|
}
|
|
}
|
|
|
|
var filename = Common.uuid() + '.' + type;
|
|
var imagePath = User.getCurUserImagesPath();
|
|
var imagePathAll = imagePath + '/' + filename;
|
|
log(imagePathAll);
|
|
fs.writeFile(imagePathAll, resp.body, function(err) {
|
|
if(err) {
|
|
log(err);
|
|
log('local save image failed 本地保存失败');
|
|
callback(false);
|
|
} else {
|
|
callback(imagePathAll, filename);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
},
|
|
};
|
|
module.exports = Api; |