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
|
** If one is not found and argPos is >0 then json_command_arg()
** is checked.
**
** Returns >0 (the report number) on success .
*/
static int json_report_get_number(int argPos){
int nReport = json_find_option_int("report",NULL,"r",-1);
if( (nReport <= 0) && (argPos>0) ){
char const * arg = json_command_arg(argPos);
if(arg && fossil_isdigit(*arg)) {
nReport = atoi(arg);
}
}
return nReport;
}
static cson_value * json_report_create(){
return NULL;
}
static cson_value * json_report_get(){
return NULL;
}
/*
** Impl of /json/report/list.
*/
static cson_value * json_report_list(){
Blob sql = empty_blob;
|
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
** If one is not found and argPos is >0 then json_command_arg()
** is checked.
**
** Returns >0 (the report number) on success .
*/
static int json_report_get_number(int argPos){
int nReport = json_find_option_int("report",NULL,"r",-1);
if( (nReport<=0) && cson_value_is_integer(g.json.reqPayload.v)){
nReport = cson_value_get_integer(g.json.reqPayload.v);
}
if( (nReport <= 0) && (argPos>0) ){
char const * arg = json_command_arg(argPos);
if(arg && fossil_isdigit(*arg)) {
nReport = atoi(arg);
}
}
return nReport;
}
static cson_value * json_report_create(){
return NULL;
}
static cson_value * json_report_get(){
int nReport;
Stmt q = empty_Stmt;
cson_value * pay = NULL;
if(!g.perm.TktFmt){
json_set_err(FSL_JSON_E_DENIED,
"Requires 't' privileges.");
return NULL;
}
nReport = json_report_get_number(3);
if(nReport <=0){
json_set_err(FSL_JSON_E_MISSING_ARGS,
"Missing or invalid 'number' (-n) parameter.");
return NULL;
}
db_prepare(&q,"SELECT rn AS rn,"
" owner AS owner,"
" title AS title,"
" strftime('%%s',mtime) as mtime,"
" cols as columns,"
" sqlcode as sqlCode"
" FROM reportfmt"
" WHERE rn=%d",
nReport);
if( SQLITE_ROW != db_step(&q) ){
db_finalize(&q);
json_set_err(FSL_JSON_E_RESOURCE_NOT_FOUND,
"Report #%d not found.", nReport);
return NULL;
}
pay = cson_sqlite3_row_to_object(q.pStmt);
db_finalize(&q);
return pay;
}
/*
** Impl of /json/report/list.
*/
static cson_value * json_report_list(){
Blob sql = empty_blob;
|