Fossil SCM
working on json wiki command
Commit
4f9f0e9f03675490b2371e4011b40911b72bd387
Parent
7a83a5cbd0424ce…
1 file changed
+26
-1
+26
-1
| --- src/json_artifact.c | ||
| +++ src/json_artifact.c | ||
| @@ -204,20 +204,45 @@ | ||
| 204 | 204 | */ |
| 205 | 205 | static ArtifactDispatchEntry ArtifactDispatchList[] = { |
| 206 | 206 | {"checkin", json_artifact_ci}, |
| 207 | 207 | {"tag", NULL}, |
| 208 | 208 | {"ticket", json_artifact_ticket}, |
| 209 | -{"wiki", NULL}, | |
| 209 | +{"wiki", json_artifact_wiki}, | |
| 210 | 210 | /* Final entry MUST have a NULL name. */ |
| 211 | 211 | {NULL,NULL} |
| 212 | 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 | +} | |
| 213 | 237 | |
| 214 | 238 | /* |
| 215 | 239 | ** Impl of /json/artifact. This basically just determines the type of |
| 216 | 240 | ** an artifact and forwards the real work to another function. |
| 217 | 241 | */ |
| 218 | 242 | cson_value * json_page_artifact(){ |
| 243 | + sleep(15); | |
| 219 | 244 | cson_value * payV = NULL; |
| 220 | 245 | cson_object * pay = NULL; |
| 221 | 246 | char const * zName = NULL; |
| 222 | 247 | char const * zType = NULL; |
| 223 | 248 | char const * zUuid = NULL; |
| 224 | 249 |
| --- 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 |