mirror of
https://github.com/zhangxiangliang/stock-api.git
synced 2025-02-02 14:18:44 +08:00
feat: 修改 雪球接口类型
This commit is contained in:
parent
4dee941496
commit
be67fe9786
@ -1,7 +1,7 @@
|
||||
// Stocks
|
||||
import Base from "@stocks/base";
|
||||
import XueqiuStockTransform from "@stocks/xueqiu/transforms/stock";
|
||||
import XueqiuExchangeTransform from "@stocks/xueqiu/transforms/exchange";
|
||||
import XueqiuApiCodeTransform from "@stocks/xueqiu/transforms/api-code";
|
||||
|
||||
// Utils
|
||||
import fetch from "@utils/fetch";
|
||||
@ -43,7 +43,7 @@ class Xueqiu extends Base {
|
||||
*/
|
||||
async getStock(code: string): Promise<Stock> {
|
||||
const token = await this.getToken();
|
||||
const transform = (new XueqiuExchangeTransform).transform(code);
|
||||
const transform = (new XueqiuApiCodeTransform).transform(code);
|
||||
|
||||
// 数据获取
|
||||
const url = `https://stock.xueqiu.com/v5/stock/quote.json?symbol=${transform}`;
|
||||
@ -65,7 +65,7 @@ class Xueqiu extends Base {
|
||||
*/
|
||||
async getStocks(codes: string[]): Promise<Stock[]> {
|
||||
const token = await this.getToken();
|
||||
const transforms = (new XueqiuExchangeTransform).transforms(codes);
|
||||
const transforms = (new XueqiuApiCodeTransform).transforms(codes);
|
||||
|
||||
// 数据获取
|
||||
const url = `https://stock.xueqiu.com/v5/stock/batch/quote.json?symbol=${transforms.join(',')}`;
|
||||
@ -76,7 +76,7 @@ class Xueqiu extends Base {
|
||||
|
||||
return codes.map(code => {
|
||||
// 数据深解析
|
||||
const transform = (new XueqiuExchangeTransform).transform(code);
|
||||
const transform = (new XueqiuApiCodeTransform).transform(code);
|
||||
const params = rows.find(i => i.quote.symbol === transform) || {};
|
||||
|
||||
const data = (new XueqiuStockTransform(code, params.quote));
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Stocks
|
||||
import BaseTransform from "@stocks/base/transforms/exchange";
|
||||
import BaseApiCodeTransform from "@stocks/base/transforms/api-code";
|
||||
|
||||
// Utils
|
||||
import { SZ, HK, US, SH } from "@utils/constant";
|
||||
@ -7,7 +7,7 @@ import { SZ, HK, US, SH } from "@utils/constant";
|
||||
/**
|
||||
* 雪球股票代码转换
|
||||
*/
|
||||
class XueqiuExchangeTransform extends BaseTransform {
|
||||
class XueqiuApiCodeTransform extends BaseApiCodeTransform {
|
||||
/**
|
||||
* 构造函数
|
||||
*/
|
||||
@ -35,7 +35,7 @@ class XueqiuExchangeTransform extends BaseTransform {
|
||||
* 深交所股票代码转换
|
||||
* @param code 股票代码
|
||||
*/
|
||||
public SZExchangeTransform(code: string): string {
|
||||
public SZTransform(code: string): string {
|
||||
if (!code.includes(SZ)) {
|
||||
throw new Error("请检查股票代码是否正确");
|
||||
}
|
||||
@ -47,7 +47,7 @@ class XueqiuExchangeTransform extends BaseTransform {
|
||||
* 上交所股票代码转换
|
||||
* @param code 股票代码
|
||||
*/
|
||||
public SHExchangeTransform(code: string): string {
|
||||
public SHTransform(code: string): string {
|
||||
if (!code.includes(SH)) {
|
||||
throw new Error("请检查股票代码是否正确");
|
||||
}
|
||||
@ -59,7 +59,7 @@ class XueqiuExchangeTransform extends BaseTransform {
|
||||
* 港交所股票代码转换
|
||||
* @param code 股票代码
|
||||
*/
|
||||
public HKExchangeTransform(code: string): string {
|
||||
public HKTransform(code: string): string {
|
||||
if (!code.includes(HK)) {
|
||||
throw new Error("请检查股票代码是否正确");
|
||||
}
|
||||
@ -71,7 +71,7 @@ class XueqiuExchangeTransform extends BaseTransform {
|
||||
* 美交所股票代码转换
|
||||
* @param code 股票代码
|
||||
*/
|
||||
public USExchangeTransform(code: string): string {
|
||||
public USTransform(code: string): string {
|
||||
if (!code.includes(US)) {
|
||||
throw new Error("请检查股票代码是否正确");
|
||||
}
|
||||
@ -80,4 +80,4 @@ class XueqiuExchangeTransform extends BaseTransform {
|
||||
}
|
||||
}
|
||||
|
||||
export default XueqiuExchangeTransform;
|
||||
export default XueqiuApiCodeTransform;
|
70
test/stocks/xueqiu/transforms/api-code.test.ts
Normal file
70
test/stocks/xueqiu/transforms/api-code.test.ts
Normal file
@ -0,0 +1,70 @@
|
||||
// Stock
|
||||
const XueqiuApiCodeTransform = require("stocks/xueqiu/transforms/api-code").default;
|
||||
|
||||
describe("【雪球】股票代码转换测试", () => {
|
||||
it("深交所股票代码转换", async () => {
|
||||
expect(() => (new XueqiuApiCodeTransform()).SZTransform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).SZTransform("SZ000000"))
|
||||
.toBe("SZ000000");
|
||||
});
|
||||
|
||||
it("上交所股票代码转换", async () => {
|
||||
expect(() => (new XueqiuApiCodeTransform()).SHTransform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).SHTransform("SH000000"))
|
||||
.toBe("SH000000");
|
||||
});
|
||||
|
||||
it("港交所股票代码转换", async () => {
|
||||
expect(() => (new XueqiuApiCodeTransform()).HKTransform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).HKTransform("HK000000"))
|
||||
.toBe("HK000000");
|
||||
});
|
||||
|
||||
it("美交所股票代码转换", async () => {
|
||||
expect(() => (new XueqiuApiCodeTransform()).USTransform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).USTransform("US000000"))
|
||||
.toBe("000000");
|
||||
});
|
||||
|
||||
it("交易所股票代码转换", async () => {
|
||||
expect((new XueqiuApiCodeTransform()).transform("SZ000000"))
|
||||
.toBe("SZ000000");
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).transform("SH000000"))
|
||||
.toBe("SH000000");
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).transform("HK000000"))
|
||||
.toBe("HK000000");
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).transform("US000000"))
|
||||
.toBe("000000");
|
||||
|
||||
expect(() => (new XueqiuApiCodeTransform()).transform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
});
|
||||
|
||||
it("交易所股票组代码转换", async () => {
|
||||
expect((new XueqiuApiCodeTransform()).transforms(["SZ000000"]))
|
||||
.toStrictEqual(["SZ000000"]);
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).transforms(["SH000000"]))
|
||||
.toStrictEqual(["SH000000"]);
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).transforms(["HK000000"]))
|
||||
.toStrictEqual(["HK000000"]);
|
||||
|
||||
expect((new XueqiuApiCodeTransform()).transforms(["US000000"]))
|
||||
.toStrictEqual(["000000"]);
|
||||
|
||||
expect(() => (new XueqiuApiCodeTransform()).transforms(["000000"]))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
});
|
||||
});
|
@ -1,70 +0,0 @@
|
||||
// Stock
|
||||
const XueqiuExchangeTransform = require("stocks/xueqiu/transforms/exchange").default;
|
||||
|
||||
describe("【雪球】股票代码转换测试", () => {
|
||||
it("深交所股票代码转换", async () => {
|
||||
expect(() => (new XueqiuExchangeTransform()).SZExchangeTransform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
|
||||
expect((new XueqiuExchangeTransform()).SZExchangeTransform("SZ000000"))
|
||||
.toBe("SZ000000");
|
||||
});
|
||||
|
||||
it("上交所股票代码转换", async () => {
|
||||
expect(() => (new XueqiuExchangeTransform()).SHExchangeTransform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
|
||||
expect((new XueqiuExchangeTransform()).SHExchangeTransform("SH000000"))
|
||||
.toBe("SH000000");
|
||||
});
|
||||
|
||||
it("港交所股票代码转换", async () => {
|
||||
expect(() => (new XueqiuExchangeTransform()).HKExchangeTransform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
|
||||
expect((new XueqiuExchangeTransform()).HKExchangeTransform("HK000000"))
|
||||
.toBe("HK000000");
|
||||
});
|
||||
|
||||
it("美交所股票代码转换", async () => {
|
||||
expect(() => (new XueqiuExchangeTransform()).USExchangeTransform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
|
||||
expect((new XueqiuExchangeTransform()).USExchangeTransform("US000000"))
|
||||
.toBe("000000");
|
||||
});
|
||||
|
||||
it("交易所股票代码转换", async () => {
|
||||
expect((new XueqiuExchangeTransform()).transform("SZ000000"))
|
||||
.toBe("SZ000000");
|
||||
|
||||
expect((new XueqiuExchangeTransform()).transform("SH000000"))
|
||||
.toBe("SH000000");
|
||||
|
||||
expect((new XueqiuExchangeTransform()).transform("HK000000"))
|
||||
.toBe("HK000000");
|
||||
|
||||
expect((new XueqiuExchangeTransform()).transform("US000000"))
|
||||
.toBe("000000");
|
||||
|
||||
expect(() => (new XueqiuExchangeTransform()).transform("000000"))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
});
|
||||
|
||||
it("交易所股票组代码转换", async () => {
|
||||
expect((new XueqiuExchangeTransform()).transforms(["SZ000000"]))
|
||||
.toStrictEqual(["SZ000000"]);
|
||||
|
||||
expect((new XueqiuExchangeTransform()).transforms(["SH000000"]))
|
||||
.toStrictEqual(["SH000000"]);
|
||||
|
||||
expect((new XueqiuExchangeTransform()).transforms(["HK000000"]))
|
||||
.toStrictEqual(["HK000000"]);
|
||||
|
||||
expect((new XueqiuExchangeTransform()).transforms(["US000000"]))
|
||||
.toStrictEqual(["000000"]);
|
||||
|
||||
expect(() => (new XueqiuExchangeTransform()).transforms(["000000"]))
|
||||
.toThrow(new Error("请检查股票代码是否正确"));
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user