1
0
mirror of https://gitlab.com/comunic/comunicapiv2 synced 2024-11-22 05:19:22 +00:00

Add links support

This commit is contained in:
Pierre HUBERT 2020-03-20 11:49:37 +01:00
parent 7341475c24
commit 0a1626dc47
2 changed files with 34 additions and 3 deletions

View File

@ -1,7 +1,7 @@
import { RequestHandler } from "../entities/RequestHandler";
import { UserHelper } from "../helpers/UserHelper";
import { PostsHelper } from "../helpers/PostsHelper";
import { Post, PostVisibilityLevel, PostKind, PostAccessLevel, PostPageKind, PostFile } from "../entities/Post";
import { Post, PostVisibilityLevel, PostKind, PostAccessLevel, PostPageKind, PostFile, PostLink } from "../entities/Post";
import { MoviesController } from "./MoviesController";
import { MoviesHelper } from "../helpers/MoviesHelper";
import { SurveyHelper } from "../helpers/SurveyHelper";
@ -13,7 +13,7 @@ import { GroupsAccessLevel } from "../entities/Group";
import { GroupsHelper } from "../helpers/GroupsHelper";
import { time } from "../utils/DateUtils";
import { findKey } from "../utils/ArrayUtils";
import { check_string_before_insert, check_youtube_id } from "../utils/StringUtils";
import { check_string_before_insert, check_youtube_id, checkURL } from "../utils/StringUtils";
import { pathUserData } from "../utils/UserDataUtils";
import { statSync } from "fs";
import { lookup } from "mime-types";
@ -215,6 +215,22 @@ export class PostsController {
break;
// Web links
case PostKind.POST_KIND_WEBLINK:
const url = h.postURL("url");
// For now, for safety, we do not fetch page content
newPost.link = new PostLink({
url: url,
title: undefined,
description: undefined,
image: undefined
});
break;
default:
h.error(500, "Unsupported kind of post!");

View File

@ -1,7 +1,7 @@
import { Response, Request } from "express";
import { APIHelper } from "../helpers/APIHelper";
import { APIClient } from "./APIClient";
import { checkMail, removeHTMLNodes } from "../utils/StringUtils";
import { checkMail, removeHTMLNodes, checkURL } from "../utils/StringUtils";
import { AccountHelper } from "../helpers/AccountHelper";
import { UploadedFile } from "express-fileupload";
import { prepareFileCreation, generateNewUserDataFileName, pathUserData } from "../utils/UserDataUtils";
@ -337,6 +337,21 @@ export class RequestHandler {
return dir;
}
/**
* Get an URL included in a POST request
*
* @param name The name of the POST field containing
* the URL
*/
public postURL(name: string) : string {
const url = this.postString(name);
if(!checkURL(url))
this.error(401, "Specified URL in '"+name+"' seems to be invalid!");
return url;
}
/**
* Get information about an uploaded file
*