lh-sdk
Version:
LassondeHacks REST API SDK in Typescript
70 lines (54 loc) • 1.67 kB
text/typescript
import { Model, SDK, Response } from './common';
module User {
export interface UserInterface {
id: number;
username: string;
password: string;
}
interface CreateUserResponse extends Response {
user: UserInterface;
}
interface GetUserInfoResponse extends Response {
user: UserInterface;
}
export async function create(user: UserInterface): Promise<Instance> {
try {
let res = <CreateUserResponse>await SDK.getInstance().POST("user", user);
return new Instance(res.user);
} catch (err) {
return null;
}
}
export async function getInfo(): Promise<Instance> {
try {
let res = <GetUserInfoResponse> await SDK.getInstance().GET("user/info");
if (res.success) {
return new Instance(res.user);
} else {
return null;
}
} catch (err) {
return null;
}
}
export class Instance implements UserInterface, Model {
public id: number;
public username: string;
public password: string;
constructor(user: UserInterface) {
this.username = user.username;
this.password = user.password;
}
public async save(): Promise<boolean> {
return new Promise<boolean>((resolve, reject) => {
resolve(true);
});
}
public async delete(): Promise<boolean> {
return new Promise<boolean>((resolve, reject) => {
resolve(true);
});
}
}
}
export = User;