]> Repos - mime-chat/commitdiff
add login and auth to socket
authorEnrique Hernandez <hernandeze2@xavier.edu>
Tue, 9 Feb 2021 04:07:25 +0000 (22:07 -0600)
committerEnrique Hernandez <hernandeze2@xavier.edu>
Tue, 9 Feb 2021 04:07:25 +0000 (22:07 -0600)
src/background/auth.ts [deleted file]
src/background/run.ts
src/background/session.ts
src/background/windowEmitter.ts
src/modules/auth.ts
src/modules/ipc.ts
src/views/login.vue

diff --git a/src/background/auth.ts b/src/background/auth.ts
deleted file mode 100644 (file)
index 81e086f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-
-export const authUser = (event: any, arg: any) => {
-    let reply;
-    reply = {
-        id: "2",
-        email: "hernandeze@xavier.edu",
-        firstName: "Enrique",
-        lastName: "Hernandez",
-        access_token: "test-token"
-    };
-    if (arg === ['undefined']) {
-        reply = new Error('AUTH-FAILED');
-    }
-    event.reply('auth-user-reply', reply);
-}
-
-export const authLogin = (event: any, arg: any) => {
-    console.log('testing login', arg);
-    event.reply('auth-login-reply', true);
-}
index 21b5151f73ed040869243a7c421aebd92de4a904..4c2404a32ffb9797363b19d04d253eec3a52c1f0 100644 (file)
@@ -1,8 +1,7 @@
 import { createWindow } from './createWindow';
 import { ipcMain  } from "electron";
-import { initSession, sendMessage} from './session';
+import { initSession, sendMessage, authUser, authLogin} from './session';
 import { windowEmitter } from './windowEmitter';
-import { authUser, authLogin } from './auth';
 const portAudio = require('naudiodon');
 
 interface ipcRendererPayload {
@@ -24,21 +23,20 @@ export function main(): void {
     // create main window.
     const win = createWindow({ width: 350, height: 525, resizable: false });
 
-
     windowEmitter.on('ipc-renderer', (payload: ipcRendererPayload) => {
         win.webContents.send(payload.endpoint, {
           message: payload.message
         });
     });
 
-    const handleIpcRender = (event: any, arg: any) => {
-        sendMessage(arg)
+    const handleMessage = (event: any, arg: any) => {
+        sendMessage(arg);
     }
 
     const windowMount = (): void => {
         windowEmitter.emit('window-active', true);
         // ipc event handlers
-        ipcMain.on('send-message', handleIpcRender);
+        ipcMain.on('send-message', handleMessage);
         ipcMain.on('auth-login', authLogin);
     }
 
index 060c55492e8b3976ee0b0ca74f95a51a977c4e54..1b508052c0d4bb8eb6fd927ce7a1986fae8f9097 100644 (file)
@@ -1,21 +1,57 @@
 import WebSocket from 'ws';
 import { windowEmitter } from './windowEmitter';
 
+type Message = {
+    type:string;
+    id: string;
+}
+
+interface RenderMessage  extends Message  {
+  content: string;
+  context: string;
+  subContext: string;
+  modifiers: string;
+  time: string;
+}
+
+interface AuthMessage extends Message  {
+    email: string;
+    firstName: string;
+    lastName: string;
+    access_token: string;
+}
+
+interface AuthRequest {
+    token: string;
+}
+
+interface PostLogin {
+    email: string;
+    password: string;
+}
+
+interface PostMessage {
+    content: string;
+}
+
 const ip = 'ws://localhost';
 const port = 8080;
 const username = 'hernandeze2@xavier.edu';
+let socket: WebSocket;
 
 const receiveMessage = (message: string): void => {
   // NOTE assuming message is JSON string
-  const parsed = JSON.parse(message);
-  windowEmitter.emit('ipc-renderer', {
-      endpoint: 'render-message',
-      message: parsed
-  });
+  const parsed: RenderMessage | AuthMessage  = JSON.parse(message);
+  if (parsed.type === "render") {
+    windowEmitter.emit('ipc-renderer', {
+        endpoint: 'render-message',
+        message: parsed
+    });
+  } else if (parsed.type === "auth") {
+      windowEmitter.emit('auth-resp', parsed);
+  }
 }
 
-let socket: WebSocket;
-
 export function initSession() {
 
     try {
@@ -33,7 +69,23 @@ export function initSession() {
     }
 }
 
-export const sendMessage = (content: string | Buffer) => {
+export const authUser = (event: any, arg: AuthRequest) => {
+    sendMessage({
+        content: arg.token
+    });
+    windowEmitter.on('auth-resp', (payload: AuthMessage) => {
+        event.reply('auth-user-reply', payload);
+    })
+}
+
+export const authLogin = (event: any, arg: PostLogin) => {
+    sendMessage(arg)
+    windowEmitter.on('auth-resp', (payload: AuthMessage) => {
+        event.reply('auth-login-reply', payload);
+    })
+}
+
+export const sendMessage = (content: PostMessage | Buffer | PostLogin) => {
     if (content instanceof Buffer) {
         socket.send(content);
     } else {
index 65bf9ae11fbcad6db2e8e616e1ae3223392bce4d..a56c7dff7e8572571a7e04214234ffe829f15522 100644 (file)
@@ -3,3 +3,9 @@ const EventEmitter = require('events');
 class WindowEmitter extends EventEmitter {}
 
 export const windowEmitter = new WindowEmitter();
+
+const ipcRend = (endpoint: string, message: any) => {
+    win.webContents.send(endpoint, {
+      message: message
+    })
+}
index 92f84fc53b44fa87e7feba4944e0974df51edb6f..65e590795ff34fd1b1def469dab58b362a77b6e6 100644 (file)
@@ -31,7 +31,9 @@ if (token) {
     state.authenticating = true;
 
     // authenticate token against crimata-platform
-    send([token]);
+    send({
+        token: token
+    });
 
     watch([loading], () => {
         if (error.value) {
index 7f7d0a913f952e92d90d49fd0b5e202842cf0d69..aebe9034fce1abf59b2b184c4e6d76448b2c00b9 100644 (file)
@@ -22,9 +22,6 @@ export const useIpc = (endpoint: string) => {
                 error.value = arg;
                 throw arg;
             } else {
-                if (callback) {
-                    callback(arg);
-                }
                 data.value = arg;
                 loading.value = false;
             }
index 83d1a89771883138f526c6c0185b7b559ad3e3fb..2f60f7e55bc50dc564b66f8c010436138702550a 100644 (file)
@@ -50,13 +50,11 @@ export default defineComponent({
         password: payload.password,
       });
       console.log(data.value, "login");
-      // setUser(data.value, payload.rememberMe);
-      // router.push({ name: "home" });
     };
 
     watch(loading, () => {
-      console.log("loading changed");
-      console.log(data.value, "post laoding");
+      setUser(data.value, payload.rememberMe);
+      router.push({ name: "home" });
     });
 
     return {