File: jsonview_renderer.c

package info (click to toggle)
webcit 917-dfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 9,164 kB
  • sloc: ansic: 34,213; sh: 4,455; makefile: 346; xml: 91; sed: 9
file content (74 lines) | stat: -rw-r--r-- 1,853 bytes parent folder | download | duplicates (2)
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
#include "webcit.h"
#include "webserver.h"
#include "dav.h"

int json_GetParamsGetServerCall(SharedMessageStatus *Stat, 
				void **ViewSpecific, 
				long oper, 
				char *cmd, 
				long len,
				char *filter,
				long flen)
{
	Stat->defaultsortorder = 2;
	Stat->sortit = 1;
	Stat->load_seen = 1;
	/* Generally using maxmsgs|startmsg is not required
	   in mailbox view, but we have a 'safemode' for clients
	   (*cough* Exploder) that simply can't handle too many */
	if (havebstr("maxmsgs"))  Stat->maxmsgs  = ibstr("maxmsgs");
	else                      Stat->maxmsgs  = 9999999;
	if (havebstr("startmsg")) Stat->startmsg = lbstr("startmsg");
	snprintf(cmd, len, "MSGS %s|%s||1",
		 (oper == do_search) ? "SEARCH" : "ALL",
		 (oper == do_search) ? bstr("query") : ""
		);

	return 200;
}
int json_MessageListHdr(SharedMessageStatus *Stat, void **ViewSpecific) 
{
	/* TODO: make a generic function */
	hprintf("HTTP/1.1 200 OK\r\n");
	hprintf("Content-type: application/json; charset=utf-8\r\n");
	hprintf("Server: %s / %s\r\n", PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software));
	hprintf("Connection: close\r\n");
	hprintf("Pragma: no-cache\r\nCache-Control: no-store\r\nExpires:-1\r\n");
	begin_burst();
	return 0;
}

int json_RenderView_or_Tail(SharedMessageStatus *Stat, 
			    void **ViewSpecific, 
			    long oper)
{
	DoTemplate(HKEY("mailsummary_json"),NULL, NULL);
	
	return 0;
}

int json_Cleanup(void **ViewSpecific)
{
	/* Note: wDumpContent() will output one additional </div> tag. */
	/* We ought to move this out into template */
	end_burst();

	return 0;
}

void 
InitModule_JSONRENDERER
(void)
{
	RegisterReadLoopHandlerset(
		VIEW_JSON_LIST,
		json_GetParamsGetServerCall,
		json_MessageListHdr,
		NULL, /* TODO: is this right? */
		ParseMessageListHeaders_Detail,
		NULL,
		json_RenderView_or_Tail,
		json_Cleanup,
		NULL);

}