generated from lucien/api-template
add: added cats, admin rights and owner_username display
This commit is contained in:
parent
7dea3612af
commit
0e2139f408
9 changed files with 15 additions and 5 deletions
|
@ -44,7 +44,7 @@ router.post('/me', async (req, res) => {
|
|||
const users = await getUser(connection, decoded.id);
|
||||
connection.end();
|
||||
if (users[0]) {
|
||||
res.send({ id: users[0].id, username: users[0].username });
|
||||
res.send({ id: users[0].id, username: users[0].username, admin: users[0].admin });
|
||||
} else {
|
||||
res.status(401).send({ error: 'Invalid token' });
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ router.post('/:name/messages/delete', async (req, res) => {
|
|||
return res.status(400).send({ error: 'No channel found' });
|
||||
}
|
||||
|
||||
if (user[0].id !== channel[0].owner_id && user[0].id !== message_id) {
|
||||
if (user[0].id !== channel[0].owner_id && user[0].id !== message_id && user[0].admin !== 1) {
|
||||
connection.end();
|
||||
return res.status(401).send({ error: 'Unauthorized' });
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ router.get('/:id', async (req, res) => {
|
|||
const users = await getUser(connection, id);
|
||||
connection.end();
|
||||
if (users[0]) {
|
||||
res.send({id: users[0].id, username: users[0].username});
|
||||
res.send({id: users[0].id, username: users[0].username, admin: users[0].admin});
|
||||
} else {
|
||||
res.send('No user found');
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ function getChannels(connection) {
|
|||
function getChannel(connection, name) {
|
||||
return new Promise((resolve, reject) => {
|
||||
connection.query(
|
||||
`SELECT * FROM channels WHERE name = "${name}"`,
|
||||
`SELECT channels.id, name, description, owner_id, username AS owner_username FROM channels JOIN users ON channels.owner_id = users.id WHERE name = "${name}"`,
|
||||
(error, result) => {
|
||||
if (error) {
|
||||
reject(new Error(error));
|
||||
|
|
BIN
front/public/cat.jpg
Normal file
BIN
front/public/cat.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 196 KiB |
|
@ -0,0 +1,3 @@
|
|||
.cat {
|
||||
width: 100px;
|
||||
}
|
|
@ -73,6 +73,10 @@ export default function Channel() {
|
|||
<Link to="/">Home</Link>
|
||||
<h1>Channel {channel.name}</h1>
|
||||
<p>{channel.description}</p>
|
||||
<p>Owner: {channel.owner_username}</p>
|
||||
{channel.name.toLowerCase().includes("cat") && (
|
||||
<img src="cat.jpg" alt="cat" className="cat" />
|
||||
)}
|
||||
{
|
||||
token ? (
|
||||
<form onSubmit={handleSubmit}>
|
||||
|
@ -95,7 +99,7 @@ export default function Channel() {
|
|||
{messages.slice(0, maxMessageToShown).map((message) => (
|
||||
<li key={message.id}>
|
||||
<p>{message.username}: {message.content}</p>
|
||||
{(user?.id === message.user_id || user?.id === channel.owner_id) && (
|
||||
{(user?.id === message.user_id || user?.id === channel.owner_id || user?.admin === 1) && (
|
||||
<button onClick={() => {deleteMessage(message.id)}}>Delete</button>
|
||||
)}
|
||||
</li>
|
||||
|
|
|
@ -52,6 +52,7 @@ export default function Home() {
|
|||
</li>
|
||||
))}
|
||||
</ul>
|
||||
<img src="cat.jpg" alt="cat" className="cat"/>
|
||||
</div>
|
||||
)
|
||||
}
|
|
@ -3,6 +3,7 @@ export type Channel_type ={
|
|||
name: string
|
||||
description: string
|
||||
owner_id: number
|
||||
owner_username: string
|
||||
}
|
||||
|
||||
export type Channels = Channel_type[]
|
||||
|
@ -20,4 +21,5 @@ export type Messages = Message[]
|
|||
export type User = {
|
||||
id: number,
|
||||
username: string
|
||||
admin: number
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue