feat: 修改 雪球接口类型

This commit is contained in:
zhangxiangliang 2020-08-19 22:28:03 +08:00
parent 4dee941496
commit be67fe9786
4 changed files with 81 additions and 81 deletions

View File

@ -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));

View File

@ -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;

View 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("请检查股票代码是否正确"));
});
});

View File

@ -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("请检查股票代码是否正确"));
});
});