Compare commits

...

7 Commits
0.4.3 ... 0.5.0

4 changed files with 31 additions and 12 deletions

View File

@ -2,9 +2,21 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [0.5.0](https://git.odit.services/kauft.es/linkylinky/compare/0.4.3...0.5.0)
- Removed visits 404 resolution [`59e1784`](https://git.odit.services/kauft.es/linkylinky/commit/59e178476e8f7e64de92ae23e859b87680e7af64)
- Added migration for visits provider [`f48159b`](https://git.odit.services/kauft.es/linkylinky/commit/f48159b31bcaf7c7449c89fb1e3851bcb04f5e3c)
- Reverted last change since we can defer it from the provider [`b532137`](https://git.odit.services/kauft.es/linkylinky/commit/b5321377bde9bd7de13e2eee4dd38a072cf0d4a3)
- Changed the way visits entrys get compiled to enable provider visits count searches over the default api [`6e26bbb`](https://git.odit.services/kauft.es/linkylinky/commit/6e26bbbf5f29e4c1eaa56c5dc41ab77c192d0cfb)
- Server now inserts provider on visit [`824c109`](https://git.odit.services/kauft.es/linkylinky/commit/824c109a420efd0e1e6de01d93827020f3fe5a5f)
- Added package script for migration creation [`6195001`](https://git.odit.services/kauft.es/linkylinky/commit/6195001d4b701d39470ff4be0e265f9afb288e78)
#### [0.4.3](https://git.odit.services/kauft.es/linkylinky/compare/0.4.2...0.4.3) #### [0.4.3](https://git.odit.services/kauft.es/linkylinky/compare/0.4.2...0.4.3)
> 21 August 2021
- Fixed auth error crashing the entire server thanks to fastify handling stuff not the same way that they do in the docs..... [`#1`](https://git.odit.services/kauft.es/linkylinky/issues/1) - Fixed auth error crashing the entire server thanks to fastify handling stuff not the same way that they do in the docs..... [`#1`](https://git.odit.services/kauft.es/linkylinky/issues/1)
- 🚀RELEASE 0.4.3 [`0afa803`](https://git.odit.services/kauft.es/linkylinky/commit/0afa80345d47e09e20d4365634f8532248b2044c)
#### [0.4.2](https://git.odit.services/kauft.es/linkylinky/compare/0.4.1...0.4.2) #### [0.4.2](https://git.odit.services/kauft.es/linkylinky/compare/0.4.1...0.4.2)

View File

@ -0,0 +1,10 @@
exports.up = function(knex) {
return knex.schema.table('visits', function (table) {
table.text('provider').defaultTo("N/A");
});
};
exports.down = function(knex) {
};

View File

@ -1,6 +1,6 @@
{ {
"name": "@odit/shortener-backend", "name": "@odit/shortener-backend",
"version": "0.4.3", "version": "0.5.0",
"main": "index.js", "main": "index.js",
"license": "MIT", "license": "MIT",
"private": false, "private": false,
@ -20,7 +20,8 @@
"dev": "nodemon src/server.js", "dev": "nodemon src/server.js",
"start": "node src/server.js", "start": "node src/server.js",
"migrate": "knex migrate:latest", "migrate": "knex migrate:latest",
"release": "release-it" "release": "release-it",
"create:migration": "knex migrate:make"
}, },
"dependencies": { "dependencies": {
"argon2": "^0.28.2", "argon2": "^0.28.2",

View File

@ -75,20 +75,24 @@ fastify.decorate('verifyJWT', function async(request, reply, done) {
//Automagic Amazn redirects on /a/ //Automagic Amazn redirects on /a/
fastify.get('/a/:id', async (req, res) => { fastify.get('/a/:id', async (req, res) => {
res.redirect(302, `https://amazon.de/dp/${req.params.id}`) res.redirect(302, `https://amazon.de/dp/${req.params.id}`)
await knex('visits').insert({ shortcode: req.params.id, provider: 'a' });
}) })
//Automagic Youtube redirects on /yt/ //Automagic Youtube redirects on /yt/
fastify.get('/yt/:id', async (req, res) => { fastify.get('/yt/:id', async (req, res) => {
res.redirect(302, `https://youtu.be/${req.params.id}`) res.redirect(302, `https://youtu.be/${req.params.id}`)
await knex('visits').insert({ shortcode: req.params.id, provider: 'yt' });
}) })
//Automagic Youtube Playlist redirects on /ytpl/ //Automagic Youtube Playlist redirects on /ytpl/
fastify.get('/ytpl/:id', async (req, res) => { fastify.get('/ytpl/:id', async (req, res) => {
res.redirect(302, `https://youtube.com/playlist?list=${req.params.id}`) res.redirect(302, `https://youtube.com/playlist?list=${req.params.id}`)
await knex('visits').insert({ shortcode: req.params.id, provider: 'ytpl' });
}) })
//Automagic ebay item redirects on /e/ //Automagic ebay item redirects on /e/
fastify.get('/e/:id', async (req, res) => { fastify.get('/e/:id', async (req, res) => {
res.redirect(302, `https://ebay.de/itm/${req.params.id}`) res.redirect(302, `https://ebay.de/itm/${req.params.id}`)
await knex('visits').insert({ shortcode: req.params.id, provider: 'e' });
}) })
//Normal shorturls //Normal shorturls
@ -107,7 +111,7 @@ fastify.get('/:shortcode', async (req, res) => {
return 404 return 404
} }
res.redirect(302, target[0].target); res.redirect(302, target[0].target);
await knex('visits').insert({ shortcode }); await knex('visits').insert({ shortcode, provider: 'native' });
}) })
//Create new url schema //Create new url schema
@ -272,15 +276,7 @@ fastify.after(() => {
return 404; return 404;
} }
const exists = await knex.select('shortcode', 'target') const visits = await knex.select('timestamp', 'provider')
.from('urls')
.where('shortcode', '=', shortcode)
.limit(1);
if (exists.length == 0) {
return 404;
}
const visits = await knex.select('timestamp')
.from('visits') .from('visits')
.where('shortcode', '=', shortcode); .where('shortcode', '=', shortcode);