Skip to content

Commit 652de04

Browse files
committed
✨ NEW: websocket
1 parent 3b09135 commit 652de04

File tree

4 files changed

+29
-9
lines changed

4 files changed

+29
-9
lines changed

src/scripts/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import '../styles/resto-fav.css';
1313
// js
1414
import App from './views/App';
1515
import swRegister from './utils/sw-register';
16-
import WebSocketInitiator from './utils/websocket-initiator';
16+
import { WebSocketInitiator } from './utils/websocket-initiator';
1717
import CONFIG from './global/config';
1818
// components
1919
import './components/navbar';

src/scripts/utils/post-review.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ const PostReview = async (url, name, review) => {
3030

3131
// POST review
3232
const reviewResponse = await RestaurantSource.postRestaurantReview(dataInput);
33-
console.log(reviewResponse);
33+
console.log(
34+
'🚀 ~ file: post-review.js ~ line 33 ~ PostReview ~ reviewResponse',
35+
reviewResponse,
36+
);
3437

3538
// append newReview to the review container
3639
reviewContainer.innerHTML += newReview;
Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
import WebsocketNotif from './websocket-notif';
22

3+
let socket = null;
4+
35
const WebSocketInitiator = {
46
init(url) {
5-
const ws = new WebSocket(url);
6-
console.log('ws connected to ', ws.url);
7+
socket = new WebSocket(url);
8+
console.log('ws connected to => ', socket.url);
79

8-
ws.onmessage = this._onMessageHandler;
10+
socket.onmessage = this._onMessageHandler;
911
},
1012

1113
_onMessageHandler(message) {
12-
console.log('websocket onmessage handler => ', message.data);
14+
console.log('websocket onmessage handler => ', message);
15+
16+
const reviewData = JSON.parse(message.data);
1317

1418
WebsocketNotif.sendNotification({
15-
title: 'Welcome to Resto',
19+
title: reviewData.name,
1620
options: {
17-
body: 'Our restaurants offer more than just great food',
21+
body: reviewData.review,
1822
icon: 'icons/192x192.png',
1923
image: 'https://i.ibb.co/nBh3jrM/roompy-android-web.png',
2024
vibrate: [200, 100, 200],
@@ -23,4 +27,10 @@ const WebSocketInitiator = {
2327
},
2428
};
2529

26-
export default WebSocketInitiator;
30+
const sendDataToWebsocket = (reviewData) => {
31+
const data = JSON.stringify(reviewData);
32+
33+
socket.send(data);
34+
};
35+
36+
export { WebSocketInitiator, sendDataToWebsocket };

src/scripts/views/pages/detail.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import restoDetail from '../templates/resto-detail';
55
import LikeButtonInitiator from '../../utils/like-button-initiator';
66
import PostReview from '../../utils/post-review';
77
import { initSwalError } from '../../utils/swal-initiator';
8+
import { sendDataToWebsocket } from '../../utils/websocket-initiator';
89

910
const Detail = {
1011
async render() {
@@ -79,6 +80,12 @@ const Detail = {
7980
// POST review
8081
await PostReview(url, nameInput.value, reviewInput.value);
8182

83+
// Send message to websocket server
84+
sendDataToWebsocket({
85+
name: nameInput.value,
86+
review: reviewInput.value,
87+
});
88+
8289
// clear form input
8390
nameInput.value = '';
8491
reviewInput.value = '';

0 commit comments

Comments
 (0)