Browse Source

增加类型

dev
1549469775 3 years ago
parent
commit
4d9f26e93e
  1. 15
      source/route/api/user/index.ts
  2. 6
      source/route/index/index.ts
  3. 7
      types/global.d.ts

15
source/route/api/user/index.ts

@ -12,6 +12,7 @@ import * as bcrypt from "bcrypt";
import * as jwt from "jsonwebtoken"; import * as jwt from "jsonwebtoken";
import * as Joi from "joi"; import * as Joi from "joi";
import { UserSchema } from "@/schema"; import { UserSchema } from "@/schema";
import { ReturnValue, Req, Res } from "#/global";
export default class { export default class {
@validate({ @validate({
@ -20,8 +21,8 @@ export default class {
@method("POST") @method("POST")
@swagger("用户注册", "返回注册用户的信息", ["api"]) @swagger("用户注册", "返回注册用户的信息", ["api"])
@auth(false) @auth(false)
async register(request, h) { async register(request: Req, h: Res): ReturnValue {
let { username, password, email } = request.payload; let { username, password, email } = request.payload as any;
if (!username) username = email; if (!username) username = email;
logger.trace(username, email); logger.trace(username, email);
try { try {
@ -39,7 +40,7 @@ export default class {
} }
@method("POST") @method("POST")
async logout(request, h) { async logout(request: Req, h: Res): ReturnValue {
request.cookieAuth.clear(); request.cookieAuth.clear();
return gSuccess("success"); return gSuccess("success");
} }
@ -53,8 +54,8 @@ export default class {
@auth(false) @auth(false)
@method("POST") @method("POST")
@swagger("用户登录", "返回注册用户的信息", ["api"]) @swagger("用户登录", "返回注册用户的信息", ["api"])
async login(request, h) { async login(request: Req, h: Res): ReturnValue {
let { username, password } = request.payload; let { username, password } = request.payload as any;
const result = <any>await User.findOne({ where: { username: username } }); const result = <any>await User.findOne({ where: { username: username } });
if (result == null) { if (result == null) {
return gFail(null, "不存在该用户"); return gFail(null, "不存在该用户");
@ -76,7 +77,7 @@ export default class {
@method("DELETE") @method("DELETE")
@auth() @auth()
@swagger("删除用户", "删除用户账号", ["sum"]) @swagger("删除用户", "删除用户账号", ["sum"])
async del(request, h) { async del(request: Req, h: Res): ReturnValue {
const { id } = request.auth.credentials; const { id } = request.auth.credentials;
let result = await User.findOne({ where: { id: id } }); let result = await User.findOne({ where: { id: id } });
if (result == null) { if (result == null) {
@ -93,7 +94,7 @@ export default class {
}).unknown(), // 注意加上这个 }).unknown(), // 注意加上这个
}) })
@swagger("获取用户信息", "返回注册用户的信息", ["用户操作", "api"]) @swagger("获取用户信息", "返回注册用户的信息", ["用户操作", "api"])
async userinfo(request, h) { async userinfo(request: Req, h: Res): ReturnValue {
console.log(request); console.log(request);
const { id } = request.auth.credentials; const { id } = request.auth.credentials;

6
source/route/index/index.ts

@ -6,7 +6,7 @@ import {
swagger, swagger,
validate, validate,
} from "@noderun/hapi-router"; } from "@noderun/hapi-router";
import { PromiseReturnValue, Req, Res, ReturnValue } from "#/global"; import { Req, Res, ReturnValue } from "#/global";
import UploadFunc from "../demo/_upload"; import UploadFunc from "../demo/_upload";
import Joi from "joi"; import Joi from "joi";
import User from "@/model/User"; import User from "@/model/User";
@ -19,7 +19,7 @@ export default class Index{
mode: "try", mode: "try",
}, },
}) })
index(request: Req, h: Res): ReturnValue { async index(request: Req, h: Res): ReturnValue {
console.log(request.auth.isAuthenticated); console.log(request.auth.isAuthenticated);
// console.log(request.auth); // console.log(request.auth);
// if (request.isAuthenticated) { // if (request.isAuthenticated) {
@ -38,7 +38,7 @@ export default class Index{
@method("POST") @method("POST")
@auth(false) @auth(false)
@route("/login") @route("/login")
async login(request: Req, h: Res): PromiseReturnValue { async login(request: Req, h: Res): ReturnValue {
const { username, password } = request.payload as any; const { username, password } = request.payload as any;
const account = <any>await User.findOne({ where: { username: username } }); const account = <any>await User.findOne({ where: { username: username } });

7
types/global.d.ts

@ -1,6 +1,7 @@
import { Logger } from "log4js"; import { Logger } from "log4js";
import { Server } from "@hapi/hapi"; import { Server } from "@hapi/hapi";
import { Request, ResponseToolkit, Lifecycle } from "@hapi/hapi"; import { Request, ResponseToolkit, Lifecycle } from "@hapi/hapi";
import { Model, ModelCtor } from "Sequelize";
declare global { declare global {
var server: Server; var server: Server;
@ -10,6 +11,9 @@ declare global {
} }
declare module '@hapi/hapi' { declare module '@hapi/hapi' {
interface Request {
getModel(name: string): ModelCtor<Model<any, any>>
}
interface ResponseToolkit { interface ResponseToolkit {
} }
@ -17,5 +21,4 @@ declare module '@hapi/hapi' {
export declare type Req = Request export declare type Req = Request
export declare type Res = ResponseToolkit export declare type Res = ResponseToolkit
export declare type ReturnValue = Lifecycle.ReturnValue export declare type ReturnValue = Promise<Lifecycle.ReturnValue>
export declare type PromiseReturnValue = Promise<Lifecycle.ReturnValue>
Loading…
Cancel
Save