diff --git a/app/src/App.vue b/app/src/App.vue
index e6e3717..3c94c4f 100644
--- a/app/src/App.vue
+++ b/app/src/App.vue
@@ -20,6 +20,9 @@ onMounted(async () => {
console.log('Disconnected from the server.')
})
socket.on('message', console.log)
+ socket.on('graph', (event) => {
+ sessionManager.handleGraphUpdate(event)
+ })
})
diff --git a/app/src/components/TreeChart.vue b/app/src/components/TreeChart.vue
index 72e2d96..207c33c 100644
--- a/app/src/components/TreeChart.vue
+++ b/app/src/components/TreeChart.vue
@@ -1,36 +1,16 @@
diff --git a/app/src/utils/session.js b/app/src/utils/session.js
index 80ab25c..a059833 100644
--- a/app/src/utils/session.js
+++ b/app/src/utils/session.js
@@ -1,10 +1,18 @@
import { ref } from 'vue'
+import { FileGraph } from '@linux-odyssey/file-graph'
import api from './api'
class SessionManager {
constructor(questId) {
this.questId = questId
this.session = ref(null)
+ this.graph = ref(
+ new FileGraph({
+ path: '/',
+ type: 'folder',
+ discovered: false,
+ })
+ )
}
getSession() {
@@ -14,6 +22,13 @@ class SessionManager {
setSession(session) {
console.log('Update session:', session)
this.session.value = session
+ this.graph.value = new FileGraph(session.graph)
+ }
+
+ handleGraphUpdate(event) {
+ if (event.discover) {
+ this.graph.value.discover(event.discover)
+ }
}
async createSession() {
@@ -37,7 +52,8 @@ class SessionManager {
if (sessions.length === 0) {
return
}
- const session = sessions[sessions.length - 1]
+ const { _id: sessionId } = sessions[sessions.length - 1]
+ const { data: session } = await api.get(`/sessions/${sessionId}`)
console.log(
`Last Session ID: ${session._id}, Quest: ${session.quest}, Created At: ${session.createdAt}`
)
@@ -49,6 +65,7 @@ class SessionManager {
if (!this.session.value) {
await this.createSession()
}
+ console.log(this.session.value)
}
}
diff --git a/server/src/models/session.js b/server/src/models/session.js
index d56880d..27d7efa 100644
--- a/server/src/models/session.js
+++ b/server/src/models/session.js
@@ -4,7 +4,10 @@ import { FileNode } from '@linux-odyssey/file-graph'
const nodeSchema = new Schema({
path: String,
type: String,
- discovered: Boolean,
+ discovered: {
+ type: Boolean,
+ default: false,
+ },
})
nodeSchema.add({
@@ -41,7 +44,10 @@ const Session = model(
hints: [String],
graph: {
type: nodeSchema,
- default: new FileNode({ path: '/', name: '/', type: 'folder' }),
+ default: new FileNode({
+ path: '/',
+ type: 'folder',
+ }),
},
},
{ timestamps: true }