diff --git a/packages/api-client/__tests__/contronllers/recently.test.ts b/packages/api-client/__tests__/contronllers/recently.test.ts index d2f5bc4d..84306e4c 100644 --- a/packages/api-client/__tests__/contronllers/recently.test.ts +++ b/packages/api-client/__tests__/contronllers/recently.test.ts @@ -43,6 +43,15 @@ describe('test recently client, /recently', () => { expect(data).toEqual(mocked) }) + test('GET /attitude', async () => { + const id = `1212121` + const mocked = mockResponse(`/recently/attitude/${id}?attitude=1`, { + code: 1, + }) + const data = await client.recently.attitude(id, 1) + expect(data).toEqual(mocked) + }) + it('should `recently` == `shorthand`', () => { expect(client.recently).toEqual(client.shorthand) }) diff --git a/packages/api-client/controllers/recently.ts b/packages/api-client/controllers/recently.ts index e972b314..2fd93941 100644 --- a/packages/api-client/controllers/recently.ts +++ b/packages/api-client/controllers/recently.ts @@ -16,6 +16,16 @@ declare module '../core/client' { } } +export enum RecentlyAttitudeResultEnum { + Inc = 1, + Dec = -1, +} + +export enum RecentlyAttitudeEnum { + Up, + Down, +} + export class RecentlyController implements IController { base = 'recently' name = ['recently', 'shorthand'] @@ -31,11 +41,13 @@ export class RecentlyController implements IController { * 获取最新一条 */ getLatestOne() { - return this.proxy.latest.get() + return this.proxy.latest.get() } getAll() { - return this.proxy.all.get<{ data: RecentlyModel[] }>() + return this.proxy.all.get<{ + data: RecentlyModel[] & { comments: number } + }>() } getList( @@ -43,7 +55,7 @@ export class RecentlyController implements IController { after?: string | undefined, size?: number | number, ) { - return this.proxy.get<{ data: RecentlyModel[] }>({ + return this.proxy.get<{ data: RecentlyModel[] & { comments: number } }>({ params: { before, after, @@ -51,4 +63,13 @@ export class RecentlyController implements IController { }, }) } + + /** 表态:点赞,点踩 */ + attitude(id: string, attitude: RecentlyAttitudeEnum) { + return this.proxy.attitude(id).get<{ code: RecentlyAttitudeResultEnum }>({ + params: { + attitude, + }, + }) + } } diff --git a/packages/api-client/package.json b/packages/api-client/package.json index ec62046d..57bfd6d5 100644 --- a/packages/api-client/package.json +++ b/packages/api-client/package.json @@ -1,6 +1,6 @@ { "name": "@mx-space/api-client", - "version": "1.0.1", + "version": "1.0.2", "type": "module", "description": "A api client for mx-space server@next", "author": "Innei", @@ -79,13 +79,13 @@ }, "scripts": { "prebuild": "rm -rf lib && rm -rf esm", - "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.cjs.json", - "postbuild": "tsc-alias -p tsconfig.build.json && tsc-alias -p tsconfig.cjs.json && npm run types", + "build": "concurrently \"tsc --build tsconfig.build.json\" \"tsc --build tsconfig.cjs.json\"", + "postbuild": "concurrently \"tsc-alias -p tsconfig.build.json\" \"tsc-alias -p tsconfig.cjs.json\" \"npm run types\"", "types": "rm -rf types && tsc --build tsconfig.types.json && tsc-alias -p tsconfig.types.json", - "package": "NODE_ENV=production npm run build && rollup -c", + "package": "NODE_ENV=production concurrently \"npm run build\" \"rollup -c\"", "prepackage": "rm -rf dist", "test": "vitest", - "dev": "vite" + "dev": "vitest" }, "devDependencies": { "@rollup/plugin-commonjs": "22.0.2", @@ -97,6 +97,7 @@ "abort-controller": "3.0.0", "axios": "*", "camelcase-keys": "*", + "concurrently": "7.6.0", "cors": "2.8.5", "dts-bundle-generator": "7.0.0", "express": "4.18.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32c533f2..f16ea43b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -269,6 +269,7 @@ importers: abort-controller: 3.0.0 axios: '*' camelcase-keys: '*' + concurrently: 7.6.0 cors: 2.8.5 dts-bundle-generator: 7.0.0 express: 4.18.2 @@ -291,6 +292,7 @@ importers: abort-controller: 3.0.0 axios: 1.2.1 camelcase-keys: 8.0.2 + concurrently: 7.6.0 cors: 2.8.5 dts-bundle-generator: 7.0.0 express: 4.18.2 @@ -3797,6 +3799,22 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /concurrently/7.6.0: + resolution: {integrity: sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw==} + engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} + hasBin: true + dependencies: + chalk: 4.1.2 + date-fns: 2.29.3 + lodash: 4.17.21 + rxjs: 7.6.0 + shell-quote: 1.7.4 + spawn-command: 0.0.2-1 + supports-color: 8.1.1 + tree-kill: 1.2.2 + yargs: 17.6.2 + dev: true + /consola/2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} @@ -3940,6 +3958,11 @@ packages: engines: {node: '>= 12'} dev: true + /date-fns/2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + engines: {node: '>=0.11'} + dev: true + /dayjs/1.11.7: resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==} dev: false @@ -7543,6 +7566,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + /shell-quote/1.7.4: + resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} + dev: true + /shelljs/0.8.5: resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} engines: {node: '>=4'} @@ -7728,6 +7755,10 @@ packages: memory-pager: 1.5.0 optional: true + /spawn-command/0.0.2-1: + resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} + dev: true + /split/0.3.3: resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} dependencies: