|
@@ -20,6 +20,64 @@ const validator = {};
|
|
|
|
|
|
|
|
const today = new Date();
|
|
const today = new Date();
|
|
|
|
|
|
|
|
|
|
+/**
|
|
|
|
|
+ * @swagger
|
|
|
|
|
+ *
|
|
|
|
|
+ * components:
|
|
|
|
|
+ * schemas:
|
|
|
|
|
+ * ShareLink:
|
|
|
|
|
+ * type: object
|
|
|
|
|
+ * properties:
|
|
|
|
|
+ * _id:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * description: The unique identifier of the share link
|
|
|
|
|
+ * relatedPage:
|
|
|
|
|
+ * type: object
|
|
|
|
|
+ * properties:
|
|
|
|
|
+ * _id:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * description: The unique identifier of the related page
|
|
|
|
|
+ * path:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * description: The path of the related page
|
|
|
|
|
+ * expiredAt:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * format: date-time
|
|
|
|
|
+ * description: The expiration date of the share link
|
|
|
|
|
+ * description:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * description: The description of the share link
|
|
|
|
|
+ * createdAt:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * format: date-time
|
|
|
|
|
+ * description: The creation date of the share link
|
|
|
|
|
+ * __v:
|
|
|
|
|
+ * type: integer
|
|
|
|
|
+ * description: The version key
|
|
|
|
|
+ * ShareLinkSimple:
|
|
|
|
|
+ * type: object
|
|
|
|
|
+ * properties:
|
|
|
|
|
+ * relatedPage:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * description: The unique identifier of the related page
|
|
|
|
|
+ * expiredAt:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * format: date-time
|
|
|
|
|
+ * description: The expiration date of the share link
|
|
|
|
|
+ * description:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * description: The description of the share link
|
|
|
|
|
+ * createdAt:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * format: date-time
|
|
|
|
|
+ * description: The creation date of the share link
|
|
|
|
|
+ * __v:
|
|
|
|
|
+ * type: integer
|
|
|
|
|
+ * description: The version key
|
|
|
|
|
+ * _id:
|
|
|
|
|
+ * type: string
|
|
|
|
|
+ * description: The unique identifier of the share link
|
|
|
|
|
+ */
|
|
|
module.exports = (crowi) => {
|
|
module.exports = (crowi) => {
|
|
|
const loginRequired = require('../../middlewares/login-required')(crowi);
|
|
const loginRequired = require('../../middlewares/login-required')(crowi);
|
|
|
const adminRequired = require('../../middlewares/admin-required')(crowi);
|
|
const adminRequired = require('../../middlewares/admin-required')(crowi);
|
|
@@ -53,7 +111,9 @@ module.exports = (crowi) => {
|
|
|
* paths:
|
|
* paths:
|
|
|
* /share-links/:
|
|
* /share-links/:
|
|
|
* get:
|
|
* get:
|
|
|
- * tags: [ShareLink]
|
|
|
|
|
|
|
+ * tags: [ShareLinks]
|
|
|
|
|
+ * security:
|
|
|
|
|
+ * - cookieAuth: []
|
|
|
* description: get share links
|
|
* description: get share links
|
|
|
* parameters:
|
|
* parameters:
|
|
|
* - name: relatedPage
|
|
* - name: relatedPage
|
|
@@ -65,6 +125,14 @@ module.exports = (crowi) => {
|
|
|
* responses:
|
|
* responses:
|
|
|
* 200:
|
|
* 200:
|
|
|
* description: Succeeded to get share links
|
|
* description: Succeeded to get share links
|
|
|
|
|
+ * content:
|
|
|
|
|
+ * application/json:
|
|
|
|
|
+ * schema:
|
|
|
|
|
+ * properties:
|
|
|
|
|
+ * shareLinksResult:
|
|
|
|
|
+ * type: array
|
|
|
|
|
+ * items:
|
|
|
|
|
+ * $ref: '#/components/schemas/ShareLink'
|
|
|
*/
|
|
*/
|
|
|
router.get('/', loginRequired, linkSharingRequired, validator.getShareLinks, apiV3FormValidator, async(req, res) => {
|
|
router.get('/', loginRequired, linkSharingRequired, validator.getShareLinks, apiV3FormValidator, async(req, res) => {
|
|
|
const { relatedPage } = req.query;
|
|
const { relatedPage } = req.query;
|
|
@@ -103,7 +171,9 @@ module.exports = (crowi) => {
|
|
|
* paths:
|
|
* paths:
|
|
|
* /share-links/:
|
|
* /share-links/:
|
|
|
* post:
|
|
* post:
|
|
|
- * tags: [ShareLink]
|
|
|
|
|
|
|
+ * tags: [ShareLinks]
|
|
|
|
|
+ * security:
|
|
|
|
|
+ * - cookieAuth: []
|
|
|
* description: Create new share link
|
|
* description: Create new share link
|
|
|
* parameters:
|
|
* parameters:
|
|
|
* - name: relatedPage
|
|
* - name: relatedPage
|
|
@@ -125,8 +195,11 @@ module.exports = (crowi) => {
|
|
|
* responses:
|
|
* responses:
|
|
|
* 200:
|
|
* 200:
|
|
|
* description: Succeeded to create one share link
|
|
* description: Succeeded to create one share link
|
|
|
|
|
+ * content:
|
|
|
|
|
+ * application/json:
|
|
|
|
|
+ * schema:
|
|
|
|
|
+ * $ref: '#/components/schemas/ShareLinkSimple'
|
|
|
*/
|
|
*/
|
|
|
-
|
|
|
|
|
router.post('/', loginRequired, excludeReadOnlyUser, linkSharingRequired, addActivity, validator.shareLinkStatus, apiV3FormValidator, async(req, res) => {
|
|
router.post('/', loginRequired, excludeReadOnlyUser, linkSharingRequired, addActivity, validator.shareLinkStatus, apiV3FormValidator, async(req, res) => {
|
|
|
const { relatedPage, expiredAt, description } = req.body;
|
|
const { relatedPage, expiredAt, description } = req.body;
|
|
|
|
|
|
|
@@ -164,7 +237,9 @@ module.exports = (crowi) => {
|
|
|
* /share-links/:
|
|
* /share-links/:
|
|
|
* delete:
|
|
* delete:
|
|
|
* tags: [ShareLinks]
|
|
* tags: [ShareLinks]
|
|
|
- * summary: /share-links/
|
|
|
|
|
|
|
+ * security:
|
|
|
|
|
+ * - cookieAuth: []
|
|
|
|
|
+ * summary: delete all share links related one page
|
|
|
* description: delete all share links related one page
|
|
* description: delete all share links related one page
|
|
|
* parameters:
|
|
* parameters:
|
|
|
* - name: relatedPage
|
|
* - name: relatedPage
|
|
@@ -176,6 +251,10 @@ module.exports = (crowi) => {
|
|
|
* responses:
|
|
* responses:
|
|
|
* 200:
|
|
* 200:
|
|
|
* description: Succeeded to delete o all share links related one page
|
|
* description: Succeeded to delete o all share links related one page
|
|
|
|
|
+ * content:
|
|
|
|
|
+ * application/json:
|
|
|
|
|
+ * schema:
|
|
|
|
|
+ * $ref: '#/components/schemas/ShareLinkSimple'
|
|
|
*/
|
|
*/
|
|
|
router.delete('/', loginRequired, excludeReadOnlyUser, addActivity, validator.deleteShareLinks, apiV3FormValidator, async(req, res) => {
|
|
router.delete('/', loginRequired, excludeReadOnlyUser, addActivity, validator.deleteShareLinks, apiV3FormValidator, async(req, res) => {
|
|
|
const { relatedPage } = req.query;
|
|
const { relatedPage } = req.query;
|
|
@@ -207,10 +286,20 @@ module.exports = (crowi) => {
|
|
|
* /share-links/all:
|
|
* /share-links/all:
|
|
|
* delete:
|
|
* delete:
|
|
|
* tags: [ShareLink Management]
|
|
* tags: [ShareLink Management]
|
|
|
|
|
+ * security:
|
|
|
|
|
+ * - cookieAuth: []
|
|
|
|
|
+ * summary: delete all share links
|
|
|
* description: delete all share links
|
|
* description: delete all share links
|
|
|
* responses:
|
|
* responses:
|
|
|
* 200:
|
|
* 200:
|
|
|
* description: Succeeded to remove all share links
|
|
* description: Succeeded to remove all share links
|
|
|
|
|
+ * content:
|
|
|
|
|
+ * application/json:
|
|
|
|
|
+ * schema:
|
|
|
|
|
+ * properties:
|
|
|
|
|
+ * deletedCount:
|
|
|
|
|
+ * type: integer
|
|
|
|
|
+ * description: The number of share links deleted
|
|
|
*/
|
|
*/
|
|
|
router.delete('/all', loginRequired, adminRequired, addActivity, async(req, res) => {
|
|
router.delete('/all', loginRequired, adminRequired, addActivity, async(req, res) => {
|
|
|
|
|
|
|
@@ -239,6 +328,8 @@ module.exports = (crowi) => {
|
|
|
* /share-links/{id}:
|
|
* /share-links/{id}:
|
|
|
* delete:
|
|
* delete:
|
|
|
* tags: [ShareLinks]
|
|
* tags: [ShareLinks]
|
|
|
|
|
+ * security:
|
|
|
|
|
+ * - cookieAuth: []
|
|
|
* description: delete one share link related one page
|
|
* description: delete one share link related one page
|
|
|
* parameters:
|
|
* parameters:
|
|
|
* - name: id
|
|
* - name: id
|