Skip to content

Commit e6ce023

Browse files
Combine viewing and editing sessionIds into 1 (#33)
1 parent de8d8d2 commit e6ce023

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

index.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,8 @@ app.use(async (ctx) => {
4141

4242
// Creates various IDs
4343
const docId = uuid();
44-
const sessionEditingId = generateShortId();
45-
documents.set(sessionEditingId, [docId, false]);
46-
const sessionViewingId = generateShortId();
47-
documents.set(sessionViewingId, [docId, true]);
44+
const sessionId = generateShortId();
45+
documents.set(sessionId, [docId, false]);
4846

4947
const connection = db.connect(undefined, { docId, readOnly: false });
5048
const doc = connection.get(COLLECTION_NAME, docId);
@@ -57,18 +55,26 @@ app.use(async (ctx) => {
5755
}
5856
});
5957
});
60-
ctx.body = { docId, sessionEditingId, sessionViewingId };
58+
ctx.body = { docId, sessionId };
6159
return;
6260
}
6361

6462
const sessionId = ctx.path.substr(1);
65-
const [docId, readOnly] = getSessionDetails(sessionId);
63+
const [docId, defaultReadOnly] = getSessionDetails(sessionId);
6664

6765
if (docId === null) {
6866
ctx.status = 404;
6967
return;
7068
}
7169

70+
if (ctx.method === 'PATCH') {
71+
const { defaultReadOnly } = ctx.request.body;
72+
73+
documents.set(sessionId, [docId, defaultReadOnly]);
74+
ctx.status = 200;
75+
return;
76+
}
77+
7278
if (ctx.method !== 'GET') {
7379
ctx.status = 405;
7480
return;
@@ -87,9 +93,9 @@ app.use(async (ctx) => {
8793
break;
8894
}
8995
});
90-
db.listen(ws, { docId, readOnly }); // docId and readOnly is passed to 'connect' middleware as ctx.req
96+
db.listen(ws, { docId, defaultReadOnly }); // docId and defaultReadOnly is passed to 'connect' middleware as ctx.req
9197
} else {
92-
ctx.body = { docId, readOnly };
98+
ctx.body = { docId, defaultReadOnly };
9399
}
94100
});
95101

0 commit comments

Comments
 (0)