Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ app.post("/channel/join", isLoggedIn, async (req, res) => {
};

var channelMessages = await MongooseDal.getMessagesForChannel(req.body.channel);


await MongooseDal.createChannel(channelMongo);

Expand All @@ -73,7 +74,7 @@ app.post("/channel/join", isLoggedIn, async (req, res) => {
socket.socket.emit("channel:joined", {
channel: req.body.channel,
users: users,
messages: channelMessages.messages
messages: channelMessages?.messages || [],
});
});
res.send({ users: users, channel: req.body.channel });
Expand Down
1 change: 0 additions & 1 deletion middleware/auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ const getUser = async (req, res) => {
if (!token) res.status(401).json({ error: "malformed auth header" });

const payload = await jwt.verify(token, SECRET_KEY);
logger.log.magenta("Payload", payload);
return payload;
};

Expand Down
4 changes: 2 additions & 2 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ <h2 class="text-xl mb-4">Join a channel</h2>
<input type="text" id="channel" class="bg-gray-700 border border-gray-600 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 mt-4" placeholder="Channel name" />
<input type="text" id="channel-key" class="bg-gray-700 border border-gray-600 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 mt-4" placeholder="Key (Optional)" />
<div class="flex items addEventListener-center mt-4">
<input type="checkbox" id="isDM" class="mr-2" />
<label for="isDM">Direct Message</label>
<input type="checkbox" id="isDm" class="mr-2" />
<label for="isDm">Direct Message</label>
</div>
<button class="bg-green-600 hover:bg-green-700 text-white font-medium py-2 px-4 rounded-lg mt-4" id="join_channel">Join</button>
</div>
Expand Down
69 changes: 42 additions & 27 deletions public/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,35 +15,44 @@ var currentNick = '';
var channels = [];
var dmUsers = [{user: 'ChanServe', messages: []}];

$(document).ready(function () {
$("#message").keypress(function (e) {
if (e.which == 13) {
var message = $('#message').val();
$('#message').val('');
addMessage({
user: currentNick,
message: message
});
// Socket sent
socket.emit('client:message', {
message: message,
channel: selectedChannel
});
return false;
}
});
$('#message_send').click(function () {
var message = $('#message').val();
$('#message').val('');
// Socket sent
socket.emit('client:message', {
message: message,
channel: selectedChannel
});
function sendMessage() {
var message = $('#message').val();

if(channels.find(channel => channel.name == selectedChannel) == undefined){
const receiver = selectedChannel;
const message = $('#message').val();
addMessage({
user: currentNick,
message: message
});

socket.emit('client:direct', {
from: currentNick,
to: receiver,
message: message
});
} else {
addMessage({
user: currentNick,
message: message
});
socket.emit('client:message', {
message: message,
channel: selectedChannel
});
}

$('#messages').animate({ scrollTop: $('#messages').prop("scrollHeight")}, 10);
$('#message').val('');
return false;
}

$(document).ready(function () {
$("#message").keypress(function (e) {
if (e.which == 13) sendMessage();
});
$('#message_send').click(function () {
sendMessage();
});

$('#connect').click(()=>{
Expand Down Expand Up @@ -91,11 +100,13 @@ $(document).ready(function () {
$('#join_channel').click(()=>{
const channel = $('#channel').val();
const key = $('#channel-key').val();
const isDm = $('#isDm').val();
const isDm = $('#isDm').is(':checked')

$('#channel').val('');
$('#channel-key').val('');

joinChannel(channel, key, isDm);
toggleOpenChannel();
});
});

Expand Down Expand Up @@ -254,7 +265,11 @@ function cleanChannelCss(channel){
};

function joinChannel(channel, key, isDm) {
console.log(isDm);
if(isDm){
openDirectMessage(channel);
return;
}

axios.post('http://127.0.0.1:3000/channel/join', {
channel: channel,
key: key
Expand Down
15 changes: 15 additions & 0 deletions services/socket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export class SocketService {
socket: socket,
user: "",
});
// Channel Message
socket.on("client:message", async (message) => {
var channel = "Global";
if (message.channel) channel = message.channel;
Expand All @@ -48,6 +49,20 @@ export class SocketService {

await MongooseDal.addMessage(message.channel, messageStore);
});

// Direct Message
socket.on("client:direct", async (message) => {
const directMessage: IDirectMessage = {
sender: message.from,
owner: message.to,
message: message.message,
created_at: new Date(),
};

await MongooseDal.addDirectMessage(directMessage);
this.ircClient.say(message.to, message.message);
});

});
return this.io;
}
Expand Down