Steven Fukase 4 лет назад
Родитель
Сommit
203f7a9487

+ 6 - 0
packages/app/src/server/models/user.js

@@ -698,6 +698,12 @@ module.exports = function(crowi) {
     user.save();
   };
 
+  userSchema.methods.updateEditorCurrentSettings = async function(editorSettings) {
+    this.editorCurrentSettings = editorSettings;
+    const userData = await this.save();
+    return userData;
+  };
+
   class UserUpperLimitException {
 
     constructor() {

+ 34 - 1
packages/app/src/server/routes/apiv3/personal-setting.js

@@ -15,7 +15,7 @@ const router = express.Router();
 /**
  * @swagger
  *  tags:
- *    name: PsersonalSetting
+ *    name: PersonalSetting
  */
 
 /**
@@ -459,5 +459,38 @@ module.exports = (crowi) => {
 
   });
 
+  /**
+   * @swagger
+   *
+   *    /personal-setting:
+   *      get:
+   *        tags: [PersonalSetting]
+   *        operationId: getPersonalSetting
+   *        summary: /personal-setting
+   *        description: Get editor preferences
+   *        responses:
+   *          200:
+   *            description: editor preferences
+   *            content:
+   *              application/json:
+   *                schema:
+   *                  properties:
+   *                    editorCurrentSettings:
+   *                      type: object
+   *                      description: editor preferences
+   */
+  router.get('/editor-current-settings', accessTokenParser, loginRequiredStrictly, async(req, res) => {
+    const { body, user } = req;
+    const { editorSettings } = body;
+    try {
+      const userData = await user.updateEditorCurrentSettings(editorSettings);
+      return res.apiv3({ userData });
+    }
+    catch (err) {
+      logger.error(err);
+      return res.apiv3Err('retrieving-update-personal-settings-failed');
+    }
+  });
+
   return router;
 };