# sequelize-simple-crud

> Library for building REST API by json config

Latest version **0.1.4** (published 2016-04-18) · 0 weekly downloads

## Install

```sh
npm install sequelize-simple-crud
pnpm add sequelize-simple-crud
yarn add sequelize-simple-crud
bun add sequelize-simple-crud
```

## Health

**Score 10/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; low quality score; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.4 |
| Published | 2016-04-18 |
| First published | 2015-11-24 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Maintainers | kovganiv |

## Links

- npm: https://www.npmjs.com/package/sequelize-simple-crud
- Repository: https://github.com/KovganIV/sequelize-simple-CRUD
- Homepage: https://github.com/KovganIV/sequelize-simple-CRUD#readme
- Issues: https://github.com/KovganIV/sequelize-simple-CRUD/issues
- npm.io page: https://npm.io/package/sequelize-simple-crud

## Recent versions

- 0.1.4 (latest) — 2016-04-18
- 0.1.3 — 2016-04-07
- 0.1.2 — 2016-04-07
- 0.1.1 — 2016-03-16
- 0.1.1-downgrade — 2016-03-16
- 0.1.0 — 2016-03-07
- 0.0.17 — 2016-03-07
- 0.0.16 — 2016-03-05
- 0.0.15 — 2016-03-05
- 0.0.14 — 2016-03-05
- 0.0.13 — 2016-03-05
- 0.0.12 — 2016-03-05
- 0.0.11 — 2016-03-05
- 0.0.10 — 2016-03-05
- 0.0.9 — 2016-03-03
- … 8 more at https://npm.io/package/sequelize-simple-crud/versions

## README

# sequelize-simple-CRUD

Sequelize-simple-CRUD is a Sequelize based API builder for Node.js.

## Installation

`npm install sequelize-simple-crud`

## API responses example

Get item
```
    {"item": {"id": 1}}
```
Get items
```
    {"items": [{"id": 1}, {"id": 2}], "count": 2}
```
With error
```
    {"error": "Wrong params"}
```

## Base objects

New controller object
```
    new ssCRUD.Controller(YourModel);
```
Your query configurator
```
    new ssCRUD.QueryHelper(sequelize,
     offsetFieldName,
     countFieldName,
     searchQFieldName,
     arrayWithSearchFields,
     filterFieldName,
     arrayOfAvailableFieldsForFilter);
```

## Controller functions

Configure your C(create) and U(update) method fields

```
    var logController = new ssCRUD.Controller(LogModel);
    logController
          .addCreate(arrayOfMandatoryFields, arrayOfNotMandatoryFields)
          .addUpdate(arrayOfMandatoryFields, arrayOfNotMandatoryFields)
```

## CRUD API config example

LogModel
```
    module.exports.defineModel = function(sequelize, DataTypes) {
      return sequelize.define('LogModel', {
        id: {
          type: DataTypes.INTEGER,
          primaryKey: true,
          autoIncrement: true
        },
        source: DataTypes.STRING,
        severity: DataTypes.INTEGER,
        message: DataTypes.STRING
      });
    };
```

Your router
```
    var ssCRUD = require('sequelize-simple-crud');

    var LogModel = require('../models/LogModel').defineModel(sequelize, Sequelize);
    var logController = new ssCRUD.Controller(LogModel);

    logController
      .addCreate(['severity', 'source', 'message'])
      .addUpdate([], ['severity', 'source', 'message'])
      .addQueryHelper(new ssCRUD.QueryHelper(modelsStore.sequelize,
        'offset',
        'count',
        'q',
        ['severity', 'source', 'message'], // You can use relation fields. Example: 'UserModel.name'
        'filter',
        ['severity', 'source', 'message']
      ));


    app.get('/logs/:id', logController.getItem);
    app.get('/logs', logController.getItems);
    app.post('/logs', logController.createItem);
    app.put('/logs/:id', logController.updateItem);
    app.delete('/logs/:id', logController.deleteItem);
```

---
_Source: https://npm.io/package/sequelize-simple-crud · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
