-
Notifications
You must be signed in to change notification settings - Fork 0
/
noteprocs.cpp
111 lines (102 loc) · 4.16 KB
/
noteprocs.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include "noteprocs.hpp"
bool indexMainResponse(json_value* value, NAMEDESCRIPTOR &descriptor) {
descriptor.clear();
indexNames(value,"",descriptor);
if((descriptor["server"]==NULL) || (descriptor["answer_info"]==NULL)) {
return false;
}
indexNames(descriptor["server"],"server_",descriptor);
indexNames(descriptor["answer_info"],"answer_info_",descriptor);
if((descriptor["server_name"]==NULL) || (descriptor["server_timezone"]==NULL) || (descriptor["server_version"]==NULL)
|| (descriptor["answer_info_code"]==NULL) || (descriptor["answer_info_attachment"]==NULL))
{
return false;
}
return true;
}
bool indexNote(NAMEDESCRIPTOR &descriptor) {
if(descriptor["answer"]==NULL) {
return false;
}
indexNames(descriptor["answer"],"answer_",descriptor);
if(descriptor["answer_note"]==NULL) {
return false;
}
indexNames(descriptor["answer_note"],"answer_note_",descriptor);
if((descriptor["answer_note_id"]==NULL) || (descriptor["answer_note_subject"]==NULL) || (descriptor["answer_note_entry"]==NULL)
|| (descriptor["answer_note_date_added"]==NULL) || (descriptor["answer_note_last_modified"]==NULL)
|| (descriptor["answer_note_locked"]==NULL) || (descriptor["answer_note_user_agent"]==NULL)
|| (descriptor["answer_note_last_user_agent"]==NULL))
{
return false;
}
return true;
}
bool indexNoteList(NAMEDESCRIPTOR &descriptor, NUMBERDESCRIPTOR &descriptor2) {
if(descriptor["answer"]==NULL) {
return false;
}
descriptor2.clear();
indexNames(descriptor["answer"],"answer_",descriptor);
if((descriptor["answer_count"]==NULL) || (descriptor["answer_notes_summary"]==NULL)) {
return false;
}
if(getSingleInteger(descriptor["answer_count"])>0) {
indexNumbers(getArrayElement(descriptor["answer_notes_summary"],0),"",descriptor2);
}
return true;
}
bool indexNewID(NAMEDESCRIPTOR &descriptor) {
if(descriptor["answer"]==NULL) {
return false;
}
indexNames(descriptor["answer"],"answer_",descriptor);
return descriptor["answer_new_id"]!=NULL;
}
long int getNoteList(NAMEDESCRIPTOR &descriptor, NUMBERDESCRIPTOR &descriptor2, NOTE_SUMMARY *¬es) {
long int notesCount;
if(indexNoteList(descriptor,descriptor2)) {
notesCount=getSingleInteger(descriptor["answer_count"]);
if(notesCount>0) {
notes = new NOTE_SUMMARY[notesCount];
for(long int x=0; x<notesCount; ++x) {
notes[x].id= getInteger(getArrayElement(descriptor["answer_notes_summary"],x),descriptor2["id"]);
notes[x].subject= getString(getArrayElement(descriptor["answer_notes_summary"],x),descriptor2["subject"]);
notes[x].lastModified= getString(getArrayElement(descriptor["answer_notes_summary"],x),descriptor2["last_modified"]);
}
}
else {
notes=NULL;
}
return notesCount;
}
else {
return ERROR_WRONG_RESPONSE;
}
}
NOTE getNote(NAMEDESCRIPTOR &descriptor) {
NOTE note;
if(indexNote(descriptor)) {
note.id= getSingleInteger(descriptor["answer_note_id"]);
note.subject= getSingleString(descriptor["answer_note_subject"]);
note.entry= getSingleString(descriptor["answer_note_entry"]);
note.dateAdded= getSingleString(descriptor["answer_note_date_added"]);
note.lastModified= getSingleString(descriptor["answer_note_last_modified"]);
note.locked= (bool)getSingleInteger(descriptor["answer_note_locked"]);
note.userAgent= getSingleString(descriptor["answer_note_user_agent"]);
note.lastUserAgent= getSingleString(descriptor["answer_note_last_user_agent"]);
}
return note;
}
long int getNewID(NAMEDESCRIPTOR &descriptor) {
if(indexNewID(descriptor)) {
return getSingleInteger(descriptor["answer_new_id"]);
}
else {
return ERROR_WRONG_RESPONSE;
}
}
void freeNoteList(NOTE_SUMMARY *¬es) {
delete[] notes;
return;
}