1.3.9 • Published 5 years ago

systemblocks v1.3.9

Weekly downloads
2
License
Apache-2.0
Repository
github
Last release
5 years ago

SystemBlocks ·

blocks bases easy rest api building framework.

Installing ?

npm i -S systemblocks

Starting express server ?

file: /index.js

import * as Blocks from 'systemblocks/core/class';

Blocks.Init();

Config file

file: /config/index.js

export default {
  db: "mongodb://localhost:27017/systemblocks",
  TIMEOUT: {
    HOOK_PROMISE: 20 * 1000
  }
}

New database modal ?

file: /applications/auth/modals/user.js

import mongoose from 'mongoose';
import * as Blocks from 'systemblocks/core/class';

const { Schema } = mongoose;

export default class User extends Blocks.Modal {
  constructor() {
    const structure = new mongoose.Schema({
      name: { type: String, required: true },
      username: { type: String, required: true },
      password: { type: String, required: true }
    });
    super({ structure, application: "auth", name: "User" });
  }
}

* Note that collection name in database will be 'auth_users'

New Route ?

file: /applications/auth/routes/login.js

import Joi from "joi";
import * as Blocks from "systemblocks/core/class";
import { Method } from "systemblocks/core/decorator";

export default class LoginController extends Blocks.Controller {
  constructor() {
    super({ application: "auth" });
  }

  @Method({
    method: "PUT",
    parameters: {
      name: Joi.string().required(),
      username: Joi.string().required(),
      password: Joi.string().required()
    }
  })
  async save(req, res) {
    const { name, username, password } = req.body;
    const saved = await new _block.modals.auth.User({
      name, username, password
    }).save();
    res.json(new Blocks.Output(saved));
  }

  @Method({
    method: "GET"
  })
  async list(req, res) {
    const users = await _block.modals.auth.User.find({});
    res.json(new Blocks.Output(users));
  }
}

Test Now

Create User

PUT /auth/login
{
	"name": "Hashan Chathuranga",
	"username": "test",
	"password": "Aa1"
}

Get Users

GET /auth/login
You can create multiple applications, routes, methods and modals

Support me by PR's and Bug Reporting. :pray:

1.3.9

5 years ago

1.3.8

5 years ago

1.3.7

5 years ago

1.3.6

5 years ago

1.3.5

5 years ago

1.3.4

5 years ago

1.3.3

5 years ago

1.3.2

5 years ago

1.3.1

5 years ago

1.2.7

5 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.0

6 years ago

0.0.22

6 years ago

0.0.28

6 years ago

0.0.21

6 years ago

0.0.20

6 years ago

0.0.1

6 years ago