mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-10 02:54:15 +00:00
169 lines
3.9 KiB
JavaScript
Executable File
169 lines
3.9 KiB
JavaScript
Executable File
import request from "../../handlers/request"
|
|
import Settings from "../../helpers/withSettings"
|
|
|
|
export default class Post {
|
|
static get maxPostTextLength() {
|
|
return 3200
|
|
}
|
|
|
|
static get maxCommentLength() {
|
|
return 1200
|
|
}
|
|
|
|
static getPostingPolicy = async () => {
|
|
const { data } = await request({
|
|
method: "GET",
|
|
url: "/posting_policy",
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static getPost = async ({ post_id }) => {
|
|
if (!post_id) {
|
|
throw new Error("Post ID is required")
|
|
}
|
|
|
|
const { data } = await request({
|
|
method: "GET",
|
|
url: `/posts/post/${post_id}`,
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static getPostComments = async ({ post_id }) => {
|
|
if (!post_id) {
|
|
throw new Error("Post ID is required")
|
|
}
|
|
|
|
const { data } = await request({
|
|
method: "GET",
|
|
url: `/comments/post/${post_id}`,
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static sendComment = async ({ post_id, comment }) => {
|
|
if (!post_id || !comment) {
|
|
throw new Error("Post ID and/or comment are required")
|
|
}
|
|
|
|
const request = await request({
|
|
method: "POST",
|
|
url: `/comments/post/${post_id}`,
|
|
data: {
|
|
message: comment,
|
|
},
|
|
})
|
|
|
|
return request
|
|
}
|
|
|
|
static deleteComment = async ({ post_id, comment_id }) => {
|
|
if (!post_id || !comment_id) {
|
|
throw new Error("Post ID and/or comment ID are required")
|
|
}
|
|
|
|
const request = await request({
|
|
method: "DELETE",
|
|
url: `/comments/post/${post_id}/${comment_id}`,
|
|
})
|
|
|
|
return request
|
|
}
|
|
|
|
static getExplorePosts = async ({ trim, limit }) => {
|
|
const { data } = await request({
|
|
method: "GET",
|
|
url: `/posts/explore`,
|
|
params: {
|
|
trim: trim ?? 0,
|
|
limit: limit ?? Settings.get("feed_max_fetch"),
|
|
}
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static getSavedPosts = async ({ trim, limit }) => {
|
|
const { data } = await request({
|
|
method: "GET",
|
|
url: `/posts/saved`,
|
|
params: {
|
|
trim: trim ?? 0,
|
|
limit: limit ?? Settings.get("feed_max_fetch"),
|
|
}
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static getUserPosts = async ({ user_id, trim, limit }) => {
|
|
if (!user_id) {
|
|
// use current user_id
|
|
user_id = app.userData?._id
|
|
}
|
|
|
|
const { data } = await request({
|
|
method: "GET",
|
|
url: `/posts/user/${user_id}`,
|
|
params: {
|
|
trim: trim ?? 0,
|
|
limit: limit ?? Settings.get("feed_max_fetch"),
|
|
}
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static toogleLike = async ({ post_id }) => {
|
|
if (!post_id) {
|
|
throw new Error("Post ID is required")
|
|
}
|
|
|
|
const { data } = await request({
|
|
method: "POST",
|
|
url: `/posts/${post_id}/toogle_like`,
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static toogleSave = async ({ post_id }) => {
|
|
if (!post_id) {
|
|
throw new Error("Post ID is required")
|
|
}
|
|
|
|
const { data } = await request({
|
|
method: "POST",
|
|
url: `/posts/${post_id}/toogle_save`,
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static create = async (payload) => {
|
|
const { data } = await request({
|
|
method: "POST",
|
|
url: `/posts/new`,
|
|
data: payload,
|
|
})
|
|
|
|
return data
|
|
}
|
|
|
|
static deletePost = async ({ post_id }) => {
|
|
if (!post_id) {
|
|
throw new Error("Post ID is required")
|
|
}
|
|
|
|
const { data } = await request({
|
|
method: "DELETE",
|
|
url: `/posts/${post_id}`,
|
|
})
|
|
|
|
return data
|
|
}
|
|
} |