nightly commit
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
|
||||
本日历目前无条件限定最小时间为1950年1月1日,最大时间为2200年12月31日。
|
||||
|
||||
API只有在遇到非当前接口应该产生的错误时,才使用外层结构来进行返回错误,例如token无效,应用程序错误,参数错误等。其应当返回的错误应该通过内层进行返回,例如登录接口的登陆成功与失败,删除接口的成功与否,应该通过内层返回true或false来决定。
|
||||
API在遇到当前接口产生错误时,使用外层结构来进行返回错误,例如token无效,应用程序错误,参数错误等。请注意捕获错误。如果没有错误,则表示data字段为有效数据。
|
||||
|
||||
## 数据库
|
||||
|
||||
@@ -280,11 +280,12 @@ Calendar类下的为日历请求接口
|
||||
|
||||
Collection类下的为日历集合请求接口
|
||||
尾缀为Own的为对自己拥有集合的操作,尾缀为Sharing的表示对自己拥有的某个集合的分享人员进行操作,尾缀为Shared的表示对由他人分享的日历集合的操作。
|
||||
其中Own结尾的get请求与日历事件获取请求相似,也有两种,一种是设计给网页使用的getFull。另一种是为客户端同步设计的getList和getDetail。
|
||||
需要注意的是,在数据表中这3部分由2个表描述,collection和share,在进行Sharing结尾的操作时(也就是操作share表),同时也会更新其在collection对应条目的lastChange。因此share表里没有lastChange而全部lastChange都在collection表里。
|
||||
|
||||
#### getOwn
|
||||
#### getFullOwn
|
||||
|
||||
请求地址:`/api/collection/getOwn`
|
||||
请求地址:`/api/collection/getFullOwn`
|
||||
|
||||
请求参数:
|
||||
|
||||
@@ -294,6 +295,31 @@ Collection类下的为日历集合请求接口
|
||||
|
||||
返回参数:一个json,返回collection数据表中符合条件的条目组合成的数组
|
||||
|
||||
#### getListOwn
|
||||
|
||||
请求地址:`/api/collection/getListOwn`
|
||||
|
||||
请求参数:
|
||||
|
||||
|参数名|参数类型|参数解释|
|
||||
|:---|:---|:---|
|
||||
|token|string|用于用户鉴权的字符串|
|
||||
|
||||
返回参数:一个json,返回collection数据表中符合条件的条目的uuid组合成的数组
|
||||
|
||||
#### getDetailOwn
|
||||
|
||||
请求地址:`/api/collection/getDetailOwn`
|
||||
|
||||
请求参数:
|
||||
|
||||
|参数名|参数类型|参数解释|
|
||||
|:---|:---|:---|
|
||||
|token|string|用于用户鉴权的字符串|
|
||||
|uuid|string|需要获取集合的uuid|
|
||||
|
||||
返回参数:一个json,返回collection数据表中对应uuid的条目
|
||||
|
||||
#### addOwn
|
||||
|
||||
请求地址:`/api/collection/addOwn`
|
||||
@@ -504,7 +530,7 @@ Admin类的操作不涉及任何客户端存储,因此不需要lastChange来
|
||||
|token|string|用于用户鉴权的字符串|
|
||||
|username|string|新的用户名|
|
||||
|
||||
返回参数:一个bool,用于表示是否创建成功,创建成功的用户具有一个随机的密码,并且默认非管理员
|
||||
返回参数:一个json,返回新建用户的对应条目,与get接口返回字段一致。创建成功的用户具有一个随机的密码,并且默认非管理员。创建失败返回null
|
||||
|
||||
#### update
|
||||
|
||||
|
||||
@@ -52,9 +52,45 @@ function ccn_api_common_login(_username, password) {
|
||||
}
|
||||
*/
|
||||
|
||||
// ============================================ template
|
||||
// all api can be implemented by these 2 function, except 3 token related func.
|
||||
// so all api func should use these 2 func except 3 token process api.
|
||||
function ccn_api_dataTemplate(_url, _data) {
|
||||
// return data or undefined
|
||||
var gotten_data = undefined;
|
||||
$.ajax({
|
||||
url: _url,
|
||||
type: "POST",
|
||||
async: false,
|
||||
data: _data,
|
||||
success: function (data) {
|
||||
gotten_data = data;
|
||||
}
|
||||
});
|
||||
|
||||
if (IsResponseOK(gotten_data) && !(gotten_data['data'] === null)) return gotten_data['data'];
|
||||
else return undefined;
|
||||
}
|
||||
|
||||
function ccn_api_boolTemplate(_url, _data) {
|
||||
// return true or false
|
||||
var gotten_data = undefined;
|
||||
$.ajax({
|
||||
url: _url,
|
||||
type: "POST",
|
||||
async: false,
|
||||
data: _data,
|
||||
success: function (data) {
|
||||
gotten_data = data;
|
||||
}
|
||||
});
|
||||
|
||||
return (IsResponseOK(gotten_data) && gotten_data['data']);
|
||||
}
|
||||
|
||||
// ====================================================== common
|
||||
|
||||
function ccn_api_common_webLogin(_username, password) {
|
||||
function ccn_api_common_webLogin(_username, _password) {
|
||||
var gotten_data = undefined;
|
||||
$.ajax({
|
||||
url: '/api/common/webLogin',
|
||||
@@ -62,7 +98,7 @@ function ccn_api_common_webLogin(_username, password) {
|
||||
async: false,
|
||||
data: {
|
||||
username: _username,
|
||||
password: password
|
||||
password: _password
|
||||
},
|
||||
success: function (data) {
|
||||
gotten_data = data;
|
||||
@@ -121,99 +157,273 @@ function ccn_api_common_tokenValid() {
|
||||
}
|
||||
}
|
||||
|
||||
function ccn_api_common_isAdmin() {
|
||||
return ccn_api_boolTemplate(
|
||||
'/api/common/isAdmin',
|
||||
{
|
||||
token: GetApiToken()
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_common_changePassword(_password) {
|
||||
return ccn_api_boolTemplate(
|
||||
'/api/common/changePassword',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
password: _password
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// ====================================================== calendar
|
||||
|
||||
function ccn_api_calendar_getFull(_startDateTime, _endDateTime) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/calendar/getFull',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
startDateTime: _startDateTime,
|
||||
endDateTime: _endDateTime
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_calendar_getDetail(_uuid) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/calendar/getDetail',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_calendar_update(_uuid, _belongTo, _title, _description, _eventDateTimeStart, _eventDateTimeEnd, _loopRules, _timezoneOffset, _lastChange) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/calendar/update',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid,
|
||||
belongTo: _belongTo,
|
||||
title: _title,
|
||||
description: _description,
|
||||
eventDateTimeStart: _eventDateTimeStart,
|
||||
eventDateTimeEnd: _eventDateTimeEnd,
|
||||
loopRules: _loopRules,
|
||||
timezoneOffset: _timezoneOffset,
|
||||
lastChange: _lastChange
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_calendar_add(_belongTo, _title, _description, _eventDateTimeStart, _eventDateTimeEnd, _loopRules, _timezoneOffset) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/calendar/add',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
belongTo: _belongTo,
|
||||
title: _title,
|
||||
description: _description,
|
||||
eventDateTimeStart: _eventDateTimeStart,
|
||||
eventDateTimeEnd: _eventDateTimeEnd,
|
||||
loopRules: _loopRules,
|
||||
timezoneOffset: _timezoneOffset
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_calendar_delete(_uuid, _lastChange) {
|
||||
return ccn_api_boolTemplate(
|
||||
'/api/calendar/delete',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid,
|
||||
lastChange: _lastChange
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// ====================================================== collection
|
||||
|
||||
function ccn_api_collection_getFullOwn() {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/collection/getFullOwn',
|
||||
{
|
||||
token: GetApiToken()
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_collection_getDetailOwn(_uuid) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/collection/getDetailOwn',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_collection_addOwn(_name) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/collection/addOwn',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
name: _name
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_collection_updateOwn(_uuid, _name, _lastChange) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/collection/updateOwn',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid,
|
||||
name: _name,
|
||||
lastChange: _lastChange
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_collection_deleteOwn(_uuid, _lastChange) {
|
||||
return ccn_api_boolTemplate(
|
||||
'/api/collection/deleteOwn',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid,
|
||||
lastChange: _lastChange
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_collection_getSharing(_uuid) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/collection/getSharing',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_collection_deleteSharing(_uuid, _target, _lastChange) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/collection/deleteSharing',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid,
|
||||
target: _target,
|
||||
lastChange: _lastChange
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_collection_addSharing(_uuid, _target, _lastChange) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/collection/addSharing',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid,
|
||||
target: _target,
|
||||
lastChange: _lastChange
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_collection_getShared() {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/collection/addSharing',
|
||||
{
|
||||
token: GetApiToken()
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// ====================================================== todo
|
||||
|
||||
function ccn_api_todo_getFull() {
|
||||
// return data or undefined
|
||||
var gotten_data = undefined;
|
||||
$.ajax({
|
||||
url: '/api/todo/getFull',
|
||||
type: "POST",
|
||||
async: false,
|
||||
data: {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/todo/getFull',
|
||||
{
|
||||
token: GetApiToken()
|
||||
},
|
||||
success: function (data) {
|
||||
gotten_data = data;
|
||||
}
|
||||
});
|
||||
|
||||
if (IsResponseOK(gotten_data)) return gotten_data['data'];
|
||||
else return undefined;
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_todo_add() {
|
||||
// return data or undefined
|
||||
var gotten_data = undefined;
|
||||
$.ajax({
|
||||
url: '/api/todo/add',
|
||||
type: "POST",
|
||||
async: false,
|
||||
data: {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/todo/add',
|
||||
{
|
||||
token: GetApiToken()
|
||||
},
|
||||
success: function (data) {
|
||||
gotten_data = data;
|
||||
}
|
||||
});
|
||||
|
||||
if (IsResponseOK(gotten_data)) return gotten_data['data'];
|
||||
else return undefined;
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_todo_update(_uuid, _data, _lastChange) {
|
||||
// return data or undefined
|
||||
var gotten_data = undefined;
|
||||
$.ajax({
|
||||
url: '/api/todo/update',
|
||||
type: "POST",
|
||||
async: false,
|
||||
data: {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/todo/update',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid,
|
||||
data: _data,
|
||||
lastChange: _lastChange
|
||||
},
|
||||
success: function (data) {
|
||||
gotten_data = data;
|
||||
}
|
||||
});
|
||||
|
||||
if (IsResponseOK(gotten_data)) return gotten_data['data'];
|
||||
else return undefined;
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_todo_delete(_uuid, _lastChange) {
|
||||
// return true or false
|
||||
var gotten_data = undefined;
|
||||
$.ajax({
|
||||
url: '/api/todo/delete',
|
||||
type: "POST",
|
||||
async: false,
|
||||
data: {
|
||||
return ccn_api_boolTemplate(
|
||||
'/api/todo/delete',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
uuid: _uuid,
|
||||
lastChange: _lastChange
|
||||
},
|
||||
success: function (data) {
|
||||
gotten_data = data;
|
||||
}
|
||||
});
|
||||
|
||||
return (IsResponseOK(gotten_data) && gotten_data['data']);
|
||||
);
|
||||
}
|
||||
|
||||
// ====================================================== admin
|
||||
|
||||
function ccn_api_admin_get() {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/admin/get',
|
||||
{
|
||||
token: GetApiToken()
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_admin_add(_username) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/admin/add',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
username: _username
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_admin_update(_username, _password, _isAdmin) {
|
||||
return ccn_api_dataTemplate(
|
||||
'/api/admin/update',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
username: _username,
|
||||
password: _password,
|
||||
isAdmin: _isAdmin
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function ccn_api_admin_delete(_username) {
|
||||
return ccn_api_boolTemplate(
|
||||
'/api/admin/delete',
|
||||
{
|
||||
token: GetApiToken(),
|
||||
username: _username
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user