@@ -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