Fossil SCM

working on json wiki command

zach 2011-10-14 15:52 json-multitag-test
Commit 4f9f0e9f03675490b2371e4011b40911b72bd387
1 file changed +26 -1
--- src/json_artifact.c
+++ src/json_artifact.c
@@ -204,20 +204,45 @@
204204
*/
205205
static ArtifactDispatchEntry ArtifactDispatchList[] = {
206206
{"checkin", json_artifact_ci},
207207
{"tag", NULL},
208208
{"ticket", json_artifact_ticket},
209
-{"wiki", NULL},
209
+{"wiki", json_artifact_wiki},
210210
/* Final entry MUST have a NULL name. */
211211
{NULL,NULL}
212212
};
213
+
214
+cson_value * json_artifact_wiki(int rid){
215
+ Manifest *pWiki = 0;
216
+ char *zBody = NULL;
217
+ char *zPageName = NULL;
218
+ cson_value * payV = NULL;
219
+ cson_object * pay = NULL;
220
+
221
+ payV = cson_value_new_object();
222
+ pay = cson_value_get_object(payV);
223
+
224
+ zPageName = db_text("SELECT tagname FROM tag"
225
+ " WHERE tagid=(SELECT tagid FROM tagxref WHERE rid=%Q)", rid);
226
+
227
+ pWiki = manifest_get(rid, CFTYPE_WIKI);
228
+ if( pWiki ){
229
+ zBody = pWiki->zWiki;
230
+ }
231
+
232
+ cson_object_set(pay, "user", json_new_string("zach"));
233
+ cson_object_set(pay, "name", json_new_string(zPageName));
234
+ cson_object_set(pay, "body", json_new_string(zBody));
235
+ return payV;
236
+}
213237
214238
/*
215239
** Impl of /json/artifact. This basically just determines the type of
216240
** an artifact and forwards the real work to another function.
217241
*/
218242
cson_value * json_page_artifact(){
243
+ sleep(15);
219244
cson_value * payV = NULL;
220245
cson_object * pay = NULL;
221246
char const * zName = NULL;
222247
char const * zType = NULL;
223248
char const * zUuid = NULL;
224249
--- src/json_artifact.c
+++ src/json_artifact.c
@@ -204,20 +204,45 @@
204 */
205 static ArtifactDispatchEntry ArtifactDispatchList[] = {
206 {"checkin", json_artifact_ci},
207 {"tag", NULL},
208 {"ticket", json_artifact_ticket},
209 {"wiki", NULL},
210 /* Final entry MUST have a NULL name. */
211 {NULL,NULL}
212 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
214 /*
215 ** Impl of /json/artifact. This basically just determines the type of
216 ** an artifact and forwards the real work to another function.
217 */
218 cson_value * json_page_artifact(){
 
219 cson_value * payV = NULL;
220 cson_object * pay = NULL;
221 char const * zName = NULL;
222 char const * zType = NULL;
223 char const * zUuid = NULL;
224
--- src/json_artifact.c
+++ src/json_artifact.c
@@ -204,20 +204,45 @@
204 */
205 static ArtifactDispatchEntry ArtifactDispatchList[] = {
206 {"checkin", json_artifact_ci},
207 {"tag", NULL},
208 {"ticket", json_artifact_ticket},
209 {"wiki", json_artifact_wiki},
210 /* Final entry MUST have a NULL name. */
211 {NULL,NULL}
212 };
213
214 cson_value * json_artifact_wiki(int rid){
215 Manifest *pWiki = 0;
216 char *zBody = NULL;
217 char *zPageName = NULL;
218 cson_value * payV = NULL;
219 cson_object * pay = NULL;
220
221 payV = cson_value_new_object();
222 pay = cson_value_get_object(payV);
223
224 zPageName = db_text("SELECT tagname FROM tag"
225 " WHERE tagid=(SELECT tagid FROM tagxref WHERE rid=%Q)", rid);
226
227 pWiki = manifest_get(rid, CFTYPE_WIKI);
228 if( pWiki ){
229 zBody = pWiki->zWiki;
230 }
231
232 cson_object_set(pay, "user", json_new_string("zach"));
233 cson_object_set(pay, "name", json_new_string(zPageName));
234 cson_object_set(pay, "body", json_new_string(zBody));
235 return payV;
236 }
237
238 /*
239 ** Impl of /json/artifact. This basically just determines the type of
240 ** an artifact and forwards the real work to another function.
241 */
242 cson_value * json_page_artifact(){
243 sleep(15);
244 cson_value * payV = NULL;
245 cson_object * pay = NULL;
246 char const * zName = NULL;
247 char const * zType = NULL;
248 char const * zUuid = NULL;
249

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button