blob: a98943496ee50b5ad5d307f2888574bcbec32d67 (
plain)
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
|
// file : brep/package-version-search.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
#include <brep/package-version-search>
#include <string>
#include <memory> // make_shared()
#include <xml/serializer>
#include <odb/database.hxx>
#include <odb/transaction.hxx>
#include <web/xhtml>
#include <web/module>
#include <web/mime-url-encoding>
#include <brep/package>
#include <brep/package-odb>
#include <brep/shared-database>
using namespace std;
using namespace cli;
using namespace odb::core;
namespace brep
{
void package_version_search::
init (scanner& s)
{
MODULE_DIAG;
options_ = make_shared<options::package_version_search> (
s, unknown_mode::fail, unknown_mode::fail);
db_ = shared_database (options_->db_host (), options_->db_port ());
}
void package_version_search::
handle (request& rq, response& rs)
{
using namespace xml;
using namespace web;
using namespace web::xhtml;
MODULE_DIAG;
const string& name (*rq.path ().rbegin ());
params::package_version_search pr;
try
{
param_scanner s (rq.parameters ());
pr = params::package_version_search (
s, unknown_mode::fail, unknown_mode::fail);
}
catch (const unknown_argument& e)
{
throw invalid_request (400, e.what ());
}
const char* title ("Package");
serializer s (rs.content (), title);
s << HTML
<< HEAD
<< TITLE << title << ~TITLE
<< ~HEAD
<< BODY << name << ~BODY
<< ~HTML;
}
}
|