feat: display the number of page views

This commit is contained in:
tdurieux
2022-10-19 16:34:03 +02:00
parent 15777c4a70
commit 0506e97990
2 changed files with 31 additions and 15 deletions

View File

@@ -134,18 +134,7 @@
<h2 id="about">Metrics</h2>
<div class="row pb-5">
<!--Grid column-->
<div class="col-md-6">
<div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"
>
<div class="col p-4 d-flex flex-column position-static">
<h3 class="mb-auto text-center">
{{stat.nbRepositories|number}} Anonymized Repositories
</h3>
</div>
</div>
</div>
<div class="col-md-6">
<div class="col-md-4">
<div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"
>
@@ -154,6 +143,26 @@
</div>
</div>
</div>
<div class="col-md-4">
<div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"
>
<div class="col p-4 d-flex flex-column position-static">
<h3 class="mb-auto text-center">
{{stat.nbRepositories|number}} Repositories
</h3>
</div>
</div>
</div>
<div class="col-md-4">
<div
class="row no-gutters border rounded overflow-hidden flex-md-row mb-4 shadow-sm h-md-250 position-relative"
>
<div class="col p-4 d-flex flex-column position-static">
<h3 class="mb-auto text-center">{{stat.nbPageViews|number}} Page views</h3>
</div>
</div>
</div>
<!--Grid column-->
</div>
<!--Grid row-->

View File

@@ -41,7 +41,7 @@ export default async function start() {
app.set("trust proxy", true);
app.set("etag", "strong");
app.get('/ip', (request, response) => response.send(request.ip))
app.get("/ip", (request, response) => response.send(request.ip));
// handle session and connection
app.use(connection.appSession);
@@ -80,7 +80,7 @@ export default async function start() {
app.use("/github", rate, speedLimiter, connection.router);
// api routes
const apiRouter = express.Router()
const apiRouter = express.Router();
app.use("/api", rate, apiRouter);
apiRouter.use("/admin", router.admin);
@@ -103,7 +103,14 @@ export default async function start() {
await AnonymizedRepositoryModel.estimatedDocumentCount();
const nbUsers = (await AnonymizedRepositoryModel.distinct("owner")).length;
res.json({ nbRepositories, nbUsers });
const nbPageViews = await AnonymizedRepositoryModel.collection
.aggregate([
{
$group: { _id: null, total: { $sum: "$pageView" } },
},
])
.toArray();
res.json({ nbRepositories, nbUsers, nbPageViews: nbPageViews[0].total });
});
// web view