diff --git a/packages/api/package.json b/packages/api/package.json index f2a3e68..2ce2531 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@raline/api", - "version": "0.0.2", + "version": "0.0.3", "description": "Client API for raline comment system", "keywords": [ "api", diff --git a/packages/api/src/comment.ts b/packages/api/src/comment.ts index c61a1c6..f53a9bc 100644 --- a/packages/api/src/comment.ts +++ b/packages/api/src/comment.ts @@ -15,18 +15,18 @@ export interface GetCommentOptions extends BaseAPIOptions { path: string; /** - * 评论分页数 + * 评论偏移ID * * Comment pagination number */ - page: number; + offset: number; /** * 每页评论个数 * * Comment number per page */ - pageSize: number; + limit: number; /** * 排序方式 @@ -91,8 +91,8 @@ export const getComment = ({ serverURL, lang, path, - page, - pageSize, + offset, + limit, sortBy, signal, token, @@ -104,7 +104,7 @@ export const getComment = ({ return fetch( `${getFetchPrefix(serverURL)}comment?type=list&path=${encodeURIComponent( path, - )}&pageSize=${pageSize}&page=${page}&lang=${lang}&sortBy=${sortBy}`, + )}&limit=${limit}&offset=${offset}&lang=${lang}&sortBy=${sortBy}`, { signal, headers }, ) .then( diff --git a/packages/client/pnpm-lock.yaml b/packages/client/pnpm-lock.yaml index 487b937..5b53198 100644 --- a/packages/client/pnpm-lock.yaml +++ b/packages/client/pnpm-lock.yaml @@ -6,8 +6,8 @@ settings: dependencies: '@raline/api': - specifier: 0.0.1 - version: registry.npmmirror.com/@raline/api@0.0.1 + specifier: 0.0.2 + version: registry.npmmirror.com/@raline/api@0.0.2 '@vueuse/core': specifier: ^11.1.0 version: registry.npmmirror.com/@vueuse/core@11.1.0(vue@3.5.5) @@ -1924,10 +1924,10 @@ packages: dev: true optional: true - registry.npmmirror.com/@raline/api@0.0.1: - resolution: {integrity: sha512-ASWrQGdIrQdk2IrAhagCW75xYKj+B9Ne3jMGXdsx/wfCtRB2Xv+Ow6of0iHaTqE7AzLX8O4iDcZ5En2BG0eE7g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@raline/api/-/api-0.0.1.tgz} + registry.npmmirror.com/@raline/api@0.0.2: + resolution: {integrity: sha512-bvnvd0PDC90pD95xN0EwSEG7NllpvBsBYpA4a5LeWANDakkDxz45DdAlaOK0H6l3HYOJ4aPClS0z+uyOd3eiag==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@raline/api/-/api-0.0.2.tgz} name: '@raline/api' - version: 0.0.1 + version: 0.0.2 engines: {node: '>=18'} dev: false diff --git a/src/dto/comment.rs b/src/dto/comment.rs index ab2c0cb..93781ab 100644 --- a/src/dto/comment.rs +++ b/src/dto/comment.rs @@ -2,6 +2,7 @@ use super::Urls; use crate::model::comments::Model as Comments; use crate::model::sea_orm_active_enums::CommentStatus; use derive_more::derive::From; +use sea_orm::Order; use serde::{Deserialize, Serialize}; use serde_with::serde_as; use serde_with::DisplayFromStr; @@ -34,7 +35,8 @@ pub struct CountCommentQuery { #[derive(Debug, Validate, Deserialize)] pub struct ListCommentQuery { pub path: String, - pub order_by: OrderBy, + #[serde(rename = "sortBy")] + pub sort_by: OrderBy, #[validate(range(max = 200, message = "查询数据过多"))] pub limit: u64, pub offset: i64, @@ -82,15 +84,18 @@ pub enum Owner { pub enum OrderBy { #[serde(rename = "like_desc")] Like, - #[serde(rename = "insert_at_desc")] - CreatedAt, + #[serde(rename = "insertedAt_asc")] + CreatedAtAsc, + #[serde(rename = "insertedAt_desc")] + CreatedAtDesc, } impl OrderBy { - pub fn into_column(&self) -> crate::model::comments::Column { + pub fn into_column_order(&self) -> (crate::model::comments::Column, Order) { match self { - Self::Like => crate::model::comments::Column::Star, - Self::CreatedAt => crate::model::comments::Column::CreatedAt, + Self::Like => (crate::model::comments::Column::Star, Order::Desc), + Self::CreatedAtAsc => (crate::model::comments::Column::CreatedAt, Order::Asc), + Self::CreatedAtDesc => (crate::model::comments::Column::CreatedAt, Order::Desc), } } } diff --git a/src/http/comment.rs b/src/http/comment.rs index b031612..a701909 100644 --- a/src/http/comment.rs +++ b/src/http/comment.rs @@ -134,9 +134,10 @@ async fn get_comment_list( let filter = filter.and(comments::Column::Id.gt(q.offset)); + let (column, order) = q.sort_by.into_column_order(); let data = Comments::find() .filter(filter) - .order_by_desc(q.order_by.into_column()) + .order_by(column, order) .limit(q.limit) .all(db) .await