11import express from "express"
2+ import checkAccessToken from "../tokens.js"
23const router = express . Router ( )
4+ import rerumPropertiesWasher from "../preprocessor.js"
35
46/* PUT an overwrite to the thing. */
5- router . put ( '/' , async ( req , res , next ) => {
7+ router . put ( '/' , checkAccessToken , rerumPropertiesWasher , async ( req , res , next ) => {
68
79 try {
810
@@ -16,22 +18,21 @@ router.put('/', async (req, res, next) => {
1618 method : 'PUT' ,
1719 body : JSON . stringify ( overwriteBody ) ,
1820 headers : {
19- 'user-agent' : 'TinyPen' ,
20- 'Origin' : process . env . ORIGIN ,
21+ 'user-agent' : 'Tiny-Things/1.0' ,
2122 'Authorization' : `Bearer ${ process . env . ACCESS_TOKEN } ` ,
2223 'Content-Type' : "application/json;charset=utf-8"
2324 }
2425 }
2526
2627 // Pass through If-Overwritten-Version header if present
27- const ifOverwrittenVersion = req . headers [ 'if-overwritten-version' ]
28- if ( ifOverwrittenVersion ) {
28+ const ifOverwrittenVersion = req . headers . hasOwnProperty ( 'if-overwritten-version' ) ? req . headers [ 'if-overwritten-version' ] : null
29+ if ( ifOverwrittenVersion !== null ) {
2930 overwriteOptions . headers [ 'If-Overwritten-Version' ] = ifOverwrittenVersion
3031 }
3132
3233 // Check for __rerum.isOverwritten in body and use as If-Overwritten-Version header
33- const isOverwrittenValue = req . body ?. __rerum ?. isOverwritten
34- if ( isOverwrittenValue ) {
34+ const isOverwrittenValue = req . body ?. __rerum ?. hasOwnProperty ( " isOverwritten" ) ? req . body . __rerum . isOverwritten : null
35+ if ( isOverwrittenValue !== null ) {
3536 overwriteOptions . headers [ 'If-Overwritten-Version' ] = isOverwrittenValue
3637 }
3738
@@ -63,4 +64,8 @@ router.put('/', async (req, res, next) => {
6364 }
6465} )
6566
67+ router . all ( '/' , ( req , res , next ) => {
68+ res . status ( 405 ) . send ( "Method Not Allowed" )
69+ } )
70+
6671export default router
0 commit comments