Compare commits
8 Commits
0.7.2
...
fd5142020d
| Author | SHA1 | Date | |
|---|---|---|---|
|
fd5142020d
|
|||
|
40f1ea4757
|
|||
| eb053df154 | |||
| 5b518c5884 | |||
| d320b20dfc | |||
| 6fd89b75ab | |||
| ae4a930ddb | |||
| bc466e7fd9 |
@@ -25,14 +25,15 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"argon2": "^0.28.2",
|
"argon2": "^0.28.2",
|
||||||
"dotenv": "^12.0.0",
|
"badge-maker": "^3.3.1",
|
||||||
|
"dotenv": "^15.0.0",
|
||||||
"fastify": "^3.20.1",
|
"fastify": "^3.20.1",
|
||||||
"fastify-auth": "^1.1.0",
|
"fastify-auth": "^1.1.0",
|
||||||
"fastify-basic-auth": "^2.1.0",
|
"fastify-basic-auth": "^2.1.0",
|
||||||
"fastify-cors": "^6.0.2",
|
"fastify-cors": "^6.0.2",
|
||||||
"fastify-jwt": "^4.0.0",
|
"fastify-jwt": "^4.0.0",
|
||||||
"isbot": "^3.3.3",
|
"isbot": "^3.3.3",
|
||||||
"knex": "0.95.0",
|
"knex": "0.95.15",
|
||||||
"sqlite3": "^5.0.2",
|
"sqlite3": "^5.0.2",
|
||||||
"uniqid": "^5.3.0"
|
"uniqid": "^5.3.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ var uniqid = require('uniqid');
|
|||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
const argon2 = require('argon2');
|
const argon2 = require('argon2');
|
||||||
const isBot = require('isbot')
|
const isBot = require('isbot')
|
||||||
|
const { makeBadge, ValidationError } = require('badge-maker')
|
||||||
|
|
||||||
let config = {
|
let config = {
|
||||||
domain: process.env.DOMAIN || "localhost:3000",
|
domain: process.env.DOMAIN || "localhost:3000",
|
||||||
@@ -259,6 +260,40 @@ fastify.get('/api/:shortcode', async (req, res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Get url api route
|
||||||
|
fastify.get('/api/badge/:shortcode', async (req, res) => {
|
||||||
|
const shortcode = req.params.shortcode;
|
||||||
|
const label = req.query.label || 'vists';
|
||||||
|
const color = req.query.color || 'green';
|
||||||
|
const style = req.query.style || 'for-the-badge';
|
||||||
|
|
||||||
|
//This should never happen but better safe than 500
|
||||||
|
if (!shortcode) {
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
|
||||||
|
const exists = await knex.select('shortcode', 'target', 'no_preview', 'clientside')
|
||||||
|
.from('urls')
|
||||||
|
.where('shortcode', '=', shortcode)
|
||||||
|
.limit(1);
|
||||||
|
if (exists.length == 0) {
|
||||||
|
return 404;
|
||||||
|
}
|
||||||
|
|
||||||
|
const visits = await knex.select('timestamp')
|
||||||
|
.from('visits')
|
||||||
|
.where('shortcode', '=', shortcode);
|
||||||
|
|
||||||
|
const format = {
|
||||||
|
label,
|
||||||
|
message: visits.length.toString(),
|
||||||
|
color,
|
||||||
|
style
|
||||||
|
}
|
||||||
|
|
||||||
|
res.type('image/svg+xml')
|
||||||
|
return makeBadge(format);
|
||||||
|
});
|
||||||
|
|
||||||
//User registration
|
//User registration
|
||||||
fastify.post('/api/auth/register', async (req, res) => {
|
fastify.post('/api/auth/register', async (req, res) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user