1.0.1-beta.3 • Published 6 years ago

tse-cli v1.0.1-beta.3

Weekly downloads
9
License
MIT
Repository
github
Last release
6 years ago

tse-cli

CLI for scaffolding tse boilerplate

  • Init project from default template
npm install -g tse-cli

Init tse project

    tse init my-first-tse

Generate a new entity

    tse make coffe <- coffe here is the entity name

picture alt

  • Entity will contains:
  1. Schema definition with created_date timestamp
    import * as mongoose from 'mongoose';

const Schema = mongoose.Schema;

export const CoffeSchema = new Schema({ created_date: { type: Date, default: Date.now } });

 2. CRUD routes 
 ```typescript
import coffeController from '../controllers/CoffeController';
import {router} from '../lib/Facades';
router.group({
    prefix: 'coffe',
    middleware: []
}, router => {
    router.post('', coffeController.store);
    router.get(':coffeId', coffeController.getCoffeWithID);
    router.get('', coffeController.getCoffes);
    router.post('', coffeController.store);
    router.put(':coffeId', coffeController.updateCoffe);
    router.delete(':coffeId', coffeController.deleteCoffe);
});
  1. Controller that support base CRUD

    import * as mongoose from 'mongoose';
    import { Controller } from './Controller';
    import { CoffeSchema } from '../models/CoffeSchema';
    import { Request, Response } from '../lib/framework/application/http';
    const Coffe = mongoose.model('Coffe', CoffeSchema);
    export class CoffeController extends Controller {
       public getCoffes (req: Request, res: Response) {
           Coffe.find({}, (err, entity) => {
               if (err) {
                   res.send(err);
               }
               res.respond(entity);
           });
       }
    
       public store(req: Request, res: Response) {
           Coffe.create(req.body, (err, entity) => {
               if (err) {
                   res.send(err);
               }
               res.respond(entity);
           });
       }
    
       public getCoffeWithID (req: Request, res: Response) {
           Coffe.findById(req.params.coffeId, (err, entity) => {
               if (err) {
                   res.send(err);
               }
               res.respond(entity);
           });
       }
    
       public updateCoffe (req: Request, res: Response) {
           Coffe.findOneAndUpdate({ _id: req.params.coffeId }, req.body, { new: true }, (err, entity) => {
               if (err) {
                   res.send(err);
               }
               res.respond(entity);
           });
       }
    
       public deleteCoffe (req: Request, res: Response) {
           Coffe.remove({ _id: req.params.coffeId }, (err, entity) => {
               if (err) {
                   res.send(err);
               }
               res.respond({ message: 'Successfully deleted Coffe!'});
           });
       }
    }

export default new CoffeController();

- Go to [postman](https://www.getpostman.com/) and try to run http://127.0.0.1:3000/coffe/
![picture alt](docs/postman-make.png)


## Stay In Touch

- [Twitter](https://twitter.com/LupacescuEuard)

## License

[MIT](http://opensource.org/licenses/MIT)

Copyright (c) 2018-present, Binaryk (Eduard) Lupacescu