Skip to content

Instantly share code, notes, and snippets.

@thejhh
Created February 8, 2021 19:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thejhh/94563219d6f3bb86be66ce483463cf71 to your computer and use it in GitHub Desktop.
Save thejhh/94563219d6f3bb86be66ce483463cf71 to your computer and use it in GitHub Desktop.
POC: Spring style annotations in TypeScript
// Copyright (c) 2020 Sendanor. All rights reserved.
import Request from "../../core/Request";
import UserService, {UserModel} from "./UserService";
export interface ListDTO<T> {
pageNumber : number;
pageSize : number;
content : Array<T>;
}
@Request.mapping('/foo/users')
@Request.mapping('/users')
export class UserController {
private readonly _userService : UserService;
constructor (userService : UserService) {
this._userService = userService;
}
@Request.mapping(Request.Method.GET, '/', '/list')
getUserList (
@Request.param('p', Request.ParamType.INTEGER)
pageNumber : number = 0,
@Request.param('l', Request.ParamType.INTEGER)
pageSize : number = 10
) : ListDTO<UserModel> {
// const parsedPageNumber = pageNumber ? parseInt(pageNumber, 10) : 0;
// const parsedPageSize = pageSize ? parseInt(pageSize, 10) : 10;
return {
pageNumber: pageNumber,
pageSize: pageSize,
content: this._userService.getUserList(pageNumber, pageSize)
};
}
}
export default UserController;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment