2021-01-30 17:30:28 +08:00
// the api use bool to return status: fail: return false, true: return data(including true and false)
// the api use other type to return data: fail: return undefined, true: return data(if the returned value have change be null, return undefined instaed).
2021-01-20 22:57:41 +08:00
// var cached_salt = undefined
/*
2021-01-30 17:30:28 +08:00
function ccn_api_common_salt(_username) {
2021-01-20 22:57:41 +08:00
// true or false
// gotten salt store in cached_salt.
var gotten_data = undefined;
$.ajax({
url: '/api/common/salt',
type: "POST",
async: false,
data: {
username: _username
},
success: function (data) {
gotten_data = data;
}
});
if (IsResponseOK(gotten_data)) {
cached_salt = gotten_data['data'];
return true;
} else return false;
}
2021-01-30 17:30:28 +08:00
function ccn_api_common_login(_username, password) {
2021-01-20 22:57:41 +08:00
// return true or false, token is managed by this js file self.
// if cached_salt is undefined, return false directly
if (typeof(cached_salt) == undefined) return false;
var gotten_data = undefined;
$.ajax({
url: '/api/common/login',
type: "POST",
async: false,
data: {
username: _username,
password: ComputPasswordWithSalt(password, cached_salt)
},
success: function (data) {
gotten_data = data;
}
});
if (IsResponseOK(gotten_data) && gotten_data['data'] != '') {
2021-03-08 15:41:32 +08:00
ccn_localstorageAssist_SetApiToken(gotten_data['data']);
2021-01-20 22:57:41 +08:00
cached_salt = undefined;
return true;
} else return false;
}
*/
2021-01-30 21:27:36 +08:00
// ============================================ 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' ]);
}
2021-03-07 21:01:51 +08:00
// deserialize & serialize calendar description function
function ccn_api_serializeDescription ( _description , _color ) {
var sobj = {
description : _description ,
color : _color
}
return JSON . stringify ( sobj );
}
function ccn_api_deserializeDescription ( strl ) {
try {
return $ . parseJSON ( strl );
} catch ( err ) {
return {
description : "" ,
color : DefaultColor
};
}
}
2021-01-23 18:37:12 +08:00
// ====================================================== common
2021-01-30 21:27:36 +08:00
function ccn_api_common_webLogin ( _username , _password ) {
2021-01-20 22:57:41 +08:00
var gotten_data = undefined ;
$ . ajax ({
url : '/api/common/webLogin' ,
type : "POST" ,
async : false ,
data : {
username : _username ,
2021-01-30 21:27:36 +08:00
password : _password
2021-01-20 22:57:41 +08:00
},
success : function ( data ) {
gotten_data = data ;
}
});
2021-01-23 18:37:12 +08:00
if ( IsResponseOK ( gotten_data )) {
2021-03-08 15:41:32 +08:00
ccn_localstorageAssist_SetApiToken ( gotten_data [ 'data' ]);
2021-01-20 22:57:41 +08:00
return true ;
} else return false ;
}
2021-01-30 17:30:28 +08:00
function ccn_api_common_logout () {
2021-01-20 22:57:41 +08:00
// return true or false
var gotten_data = undefined ;
$ . ajax ({
url : '/api/common/logout' ,
type : "POST" ,
async : false ,
data : {
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken ()
2021-01-20 22:57:41 +08:00
},
success : function ( data ) {
gotten_data = data ;
}
});
2021-01-30 17:30:28 +08:00
if ( IsResponseOK ( gotten_data ) && gotten_data [ 'data' ]) {
2021-03-08 15:41:32 +08:00
ccn_localstorageAssist_SetApiToken ( '' );
2021-01-20 22:57:41 +08:00
return true ;
} return false ;
}
2021-01-30 17:30:28 +08:00
function ccn_api_common_tokenValid () {
2021-01-20 22:57:41 +08:00
// get from local database first, then judge it via post
// return true or false
2021-03-08 15:41:32 +08:00
var gotten_token = ccn_localstorageAssist_GetApiToken ();
2021-01-20 22:57:41 +08:00
if ( gotten_token == '' ) return false ;
var gotten_data = undefined ;
$ . ajax ({
url : '/api/common/tokenValid' ,
type : "POST" ,
async : false ,
data : {
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken ()
2021-01-20 22:57:41 +08:00
},
success : function ( data ) {
gotten_data = data ;
}
});
2021-01-30 17:30:28 +08:00
if ( IsResponseOK ( gotten_data ) && gotten_data [ 'data' ]) return true ;
2021-01-20 22:57:41 +08:00
else {
2021-03-08 15:41:32 +08:00
ccn_localstorageAssist_SetApiToken ( '' );
2021-01-20 22:57:41 +08:00
return false ;
}
2021-01-23 18:37:12 +08:00
}
// ====================================================== calendar
2021-01-30 21:27:36 +08:00
function ccn_api_calendar_getFull ( _startDateTime , _endDateTime ) {
return ccn_api_dataTemplate (
'/api/calendar/getFull' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
startDateTime : _startDateTime ,
endDateTime : _endDateTime
}
);
}
2021-01-23 18:37:12 +08:00
2021-01-30 21:27:36 +08:00
function ccn_api_calendar_getDetail ( _uuid ) {
return ccn_api_dataTemplate (
'/api/calendar/getDetail' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
uuid : _uuid
}
);
}
2021-01-23 18:37:12 +08:00
2021-01-30 21:27:36 +08:00
function ccn_api_calendar_update ( _uuid , _belongTo , _title , _description , _eventDateTimeStart , _eventDateTimeEnd , _loopRules , _timezoneOffset , _lastChange ) {
2021-02-09 17:10:05 +08:00
var data = {};
if ( typeof ( _belongTo ) != 'undefined' )
data . belongTo = _belongTo ;
if ( typeof ( _title ) != 'undefined' )
data . title = _title ;
if ( typeof ( _description ) != 'undefined' )
data . description = _description ;
if ( typeof ( _eventDateTimeStart ) != 'undefined' )
data . eventDateTimeStart = _eventDateTimeStart ;
if ( typeof ( _eventDateTimeEnd ) != 'undefined' )
data . eventDateTimeEnd = _eventDateTimeEnd ;
if ( typeof ( _loopRules ) != 'undefined' )
data . loopRules = _loopRules ;
if ( typeof ( _timezoneOffset ) != 'undefined' )
data . timezoneOffset = _timezoneOffset ;
2021-03-08 15:41:32 +08:00
data . token = ccn_localstorageAssist_GetApiToken ();
2021-02-09 17:10:05 +08:00
data . uuid = _uuid ;
data . lastChange = _lastChange ;
2021-01-30 21:27:36 +08:00
return ccn_api_dataTemplate (
'/api/calendar/update' ,
2021-02-09 17:10:05 +08:00
data
2021-01-30 21:27:36 +08:00
);
}
2021-01-23 18:37:12 +08:00
2021-01-30 21:27:36 +08:00
function ccn_api_calendar_add ( _belongTo , _title , _description , _eventDateTimeStart , _eventDateTimeEnd , _loopRules , _timezoneOffset ) {
return ccn_api_dataTemplate (
'/api/calendar/add' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
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' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
uuid : _uuid ,
lastChange : _lastChange
}
);
}
2021-01-23 18:37:12 +08:00
// ====================================================== collection
2021-01-30 21:27:36 +08:00
function ccn_api_collection_getFullOwn () {
return ccn_api_dataTemplate (
'/api/collection/getFullOwn' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken ()
2021-01-30 21:27:36 +08:00
}
);
}
2021-01-23 18:37:12 +08:00
2021-01-30 21:27:36 +08:00
function ccn_api_collection_getDetailOwn ( _uuid ) {
return ccn_api_dataTemplate (
'/api/collection/getDetailOwn' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
uuid : _uuid
}
);
}
function ccn_api_collection_addOwn ( _name ) {
return ccn_api_dataTemplate (
'/api/collection/addOwn' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
name : _name
}
);
}
function ccn_api_collection_updateOwn ( _uuid , _name , _lastChange ) {
return ccn_api_dataTemplate (
'/api/collection/updateOwn' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
uuid : _uuid ,
name : _name ,
lastChange : _lastChange
}
);
}
function ccn_api_collection_deleteOwn ( _uuid , _lastChange ) {
return ccn_api_boolTemplate (
'/api/collection/deleteOwn' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
uuid : _uuid ,
lastChange : _lastChange
}
);
}
function ccn_api_collection_getSharing ( _uuid ) {
return ccn_api_dataTemplate (
'/api/collection/getSharing' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
uuid : _uuid
}
);
}
function ccn_api_collection_deleteSharing ( _uuid , _target , _lastChange ) {
return ccn_api_dataTemplate (
'/api/collection/deleteSharing' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
uuid : _uuid ,
target : _target ,
lastChange : _lastChange
}
);
}
function ccn_api_collection_addSharing ( _uuid , _target , _lastChange ) {
return ccn_api_dataTemplate (
'/api/collection/addSharing' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
uuid : _uuid ,
target : _target ,
lastChange : _lastChange
}
);
}
function ccn_api_collection_getShared () {
return ccn_api_dataTemplate (
2021-02-05 17:07:20 +08:00
'/api/collection/getShared' ,
2021-01-30 21:27:36 +08:00
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken ()
2021-01-30 21:27:36 +08:00
}
);
}
2021-01-23 18:37:12 +08:00
// ====================================================== todo
2021-01-30 17:30:28 +08:00
function ccn_api_todo_getFull () {
2021-01-30 21:27:36 +08:00
return ccn_api_dataTemplate (
'/api/todo/getFull' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken ()
2021-01-23 18:37:12 +08:00
}
2021-01-30 21:27:36 +08:00
);
2021-01-23 18:37:12 +08:00
}
2021-01-30 17:30:28 +08:00
function ccn_api_todo_add () {
2021-01-30 21:27:36 +08:00
return ccn_api_dataTemplate (
'/api/todo/add' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken ()
2021-01-23 18:37:12 +08:00
}
2021-01-30 21:27:36 +08:00
);
2021-01-23 18:37:12 +08:00
}
2021-01-30 17:30:28 +08:00
function ccn_api_todo_update ( _uuid , _data , _lastChange ) {
2021-01-30 21:27:36 +08:00
return ccn_api_dataTemplate (
'/api/todo/update' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-23 18:37:12 +08:00
uuid : _uuid ,
data : _data ,
lastChange : _lastChange
}
2021-01-30 21:27:36 +08:00
);
2021-01-23 18:37:12 +08:00
}
2021-01-30 17:30:28 +08:00
function ccn_api_todo_delete ( _uuid , _lastChange ) {
2021-01-30 21:27:36 +08:00
return ccn_api_boolTemplate (
'/api/todo/delete' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-23 18:37:12 +08:00
uuid : _uuid ,
lastChange : _lastChange
}
2021-01-30 21:27:36 +08:00
);
2021-01-23 18:37:12 +08:00
}
// ====================================================== admin
2021-01-30 21:27:36 +08:00
function ccn_api_admin_get () {
return ccn_api_dataTemplate (
'/api/admin/get' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken ()
2021-01-30 21:27:36 +08:00
}
);
}
2021-01-23 18:37:12 +08:00
2021-01-30 21:27:36 +08:00
function ccn_api_admin_add ( _username ) {
return ccn_api_dataTemplate (
'/api/admin/add' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
username : _username
}
);
}
function ccn_api_admin_update ( _username , _password , _isAdmin ) {
2021-02-03 16:08:40 +08:00
var data = {};
if ( typeof ( _password ) != 'undefined' )
data . password = _password ;
if ( typeof ( _isAdmin ) != 'undefined' )
data . isAdmin = _isAdmin ;
if ( Object . getOwnPropertyNames ( data ). length == 0 ) return false ;
2021-03-08 15:41:32 +08:00
data . token = ccn_localstorageAssist_GetApiToken ();
2021-02-03 16:08:40 +08:00
data . username = _username ;
return ccn_api_boolTemplate (
2021-01-30 21:27:36 +08:00
'/api/admin/update' ,
2021-02-03 16:08:40 +08:00
data
2021-01-30 21:27:36 +08:00
);
}
function ccn_api_admin_delete ( _username ) {
return ccn_api_boolTemplate (
'/api/admin/delete' ,
{
2021-03-08 15:41:32 +08:00
token : ccn_localstorageAssist_GetApiToken (),
2021-01-30 21:27:36 +08:00
username : _username
}
);
}
2021-01-23 18:37:12 +08:00
2021-03-08 21:56:03 +08:00
// ====================================================== profile
function ccn_api_profile_isAdmin () {
return ccn_api_boolTemplate (
'/api/profile/isAdmin' ,
{
token : ccn_localstorageAssist_GetApiToken ()
}
);
}
function ccn_api_profile_changePassword ( _password ) {
return ccn_api_boolTemplate (
'/api/profile/changePassword' ,
{
token : ccn_localstorageAssist_GetApiToken (),
password : _password
}
);
}
function ccn_api_profile_getToken () {
return ccn_api_boolTemplate (
'/api/profile/getToken' ,
{
token : ccn_localstorageAssist_GetApiToken ()
}
);
}
function ccn_api_profile_deleteToken ( _deleteToken ) {
return ccn_api_boolTemplate (
'/api/profile/deleteToken' ,
{
token : ccn_localstorageAssist_GetApiToken (),
deleteToken : _deleteToken
}
);
}