Browse Source

added pages query

master
root 5 years ago
parent
commit
2e9c70f967
1 changed files with 71 additions and 22 deletions
  1. 71
    22
      cgi/autodoc.fcgi

+ 71
- 22
cgi/autodoc.fcgi View File

@@ -49,6 +49,12 @@ while($request->Accept() >= 0) {
}
}

send_response($code, $type, $data);
}

sub send_response {
my ($code, $type, $data) = @_;

printf("Status: %s\r\n", $code);
printf("Content-type: %s\r\n", $type) if defined $type;
printf("Content-length: %i\r\n", length($data)) if defined $data;
@@ -56,6 +62,13 @@ while($request->Accept() >= 0) {
print $data if defined $data;
}

sub fatal_api_error {
my($code,$type,$body)=api_error(@_);
send_response($code, $type, $body);
exit;
}


sub load_conf {
my($file) = @_;

@@ -111,18 +124,61 @@ sub db_get_document_object {
}
}

my $out = {
id => $document->{id},
pageId => [ @pageids ],
name => $document->{name},
created => $document->{created},
owner => $document->{owner},
status => $document->{status},
languages => [ keys %lang ],
};
if ( defined $document ) {

my $out = {
id => $document->{id},
pageId => [ @pageids ],
name => $document->{name},
created => $document->{created},
owner => $document->{owner},
status => $document->{status},
languages => [ keys %lang ],
};
return (200, "application/json", $out);
}

return (404, "application/json", "");
}

sub db_get_page_object {
my($id) = @_;

return (200, "application/json", $out);
my $out;
my %lang;
my @tags;

my $q = sqlquery($dbh, "SELECT * FROM pages_lang WHERE pageId = ?", $id);
while(my $hash = $q->fetchrow_hashref()) {
$lang{$hash->{language}}++;
}

$q = sqlquery($dbh, "
SELECT tags.tag AS tag
FROM pages_tags LEFT JOIN tags ON pages_tags.tagId = tags.id
WHERE pageId = ?i SORT BY tag", $id);
while(my ($tag) = $q->fetchrow_array()) { push @tags, $tag; }

$q = sqlquery($dbh, "SELECT * FROM pages WHERE documentId = ?", $id);
while(my $hash = $q->fetchrow_hashref()) {
$out = {
id => $id,
documentId => $hash->{documentId},
name => $hash->{name},
created => $hash->{created},
owner => $hash->{owner},
status => $hash->{status},
language => [ keys %lang ],
tags => [ @tags ],
};
}

if ( exists $out->{id} ) {
return (200, "application/json", $out);
}

return (404, "application/json", "");
}

# create an empty document object.
@@ -177,7 +233,11 @@ sub api_v1_GET_documents_id {
return db_get_document_object($id);
}

sub api_v1_GET_pages_id { return api_error(501,"Not yet implemented"); }
# get a specific page
sub api_v1_GET_pages_id {
my($id, $qs, $post, $user) = @_;
return db_get_page_object($id);
}

# change document properties
sub api_v1_PATCH_documents_id {
@@ -221,17 +281,6 @@ sub get_array {
return \@arr;
}

sub fatal_api_error {
my($code,$type,$body)=api_error(@_);

printf("Status: %s\r\n", $code);
printf("Content-type: %s\r\n", $type);
printf("Content-length: %i\r\n", length($body));
printf("\r\n");
print $body;
exit;
}

sub api_error {
my($code, $text)=@_;


Loading…
Cancel
Save