✨ linkShortener: Count clicks
This commit is contained in:
		| @@ -9,5 +9,10 @@ module.exports = sequelize.define('short_link', { | ||||
|   shortcut: { | ||||
|     type: Sequelize.TEXT, | ||||
|     allowNull: false | ||||
|   }, | ||||
|   count: { | ||||
|     type: Sequelize.INTEGER, | ||||
|     allowNull: false, | ||||
|     defaultValue: 0 | ||||
|   } | ||||
| }) | ||||
|   | ||||
| @@ -51,7 +51,18 @@ app.get('/:shortcut', (req, res, next) => { | ||||
|         return res.redirect('/error/404') | ||||
|       } | ||||
|  | ||||
|       return res.redirect(result.url) | ||||
|       const count = (result.count += 1) | ||||
|       database.query( | ||||
|         'UPDATE short_links SET count = ? WHERE id = ?', | ||||
|         [count, result.id], | ||||
|         error => { | ||||
|           if (error != null) { | ||||
|             return next(error) | ||||
|           } | ||||
|  | ||||
|           return res.redirect(result.url) | ||||
|         } | ||||
|       ) | ||||
|     } | ||||
|   ) | ||||
| }) | ||||
|   | ||||
| @@ -277,6 +277,9 @@ const LinksList = ({ | ||||
|                     <th className='table-row' scope='col'> | ||||
|                       Nom | ||||
|                     </th> | ||||
|                     <th className='table-row' scope='col'> | ||||
|                       Compteur de clics | ||||
|                     </th> | ||||
|                     <th className='table-row' scope='col'> | ||||
|                       Modifier | ||||
|                     </th> | ||||
| @@ -297,6 +300,7 @@ const LinksList = ({ | ||||
|                             {link.shortcut} | ||||
|                           </a> | ||||
|                         </td> | ||||
|                         <td className='table-row'>{link.count}</td> | ||||
|                         <td | ||||
|                           style={{ cursor: 'pointer' }} | ||||
|                           onClick={() => handleEditLink(link)} | ||||
|   | ||||
| @@ -41,8 +41,8 @@ const Profile = props => { | ||||
|       event.target.files != null | ||||
|         ? event.target.files[0] | ||||
|         : isTypeCheck | ||||
|         ? event.target.checked | ||||
|         : event.target.value | ||||
|           ? event.target.checked | ||||
|           : event.target.value | ||||
|     setInputState(inputStateNew) | ||||
|   } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user