1.5.2 • Published 3 years ago

datastorehelper v1.5.2

Weekly downloads
6
License
ISC
Repository
github
Last release
3 years ago

Datastore Helper typescript

Libreria que facilita el uso de la libreria Google Cloud Datastore: Node.js Client extendiendo e implementando datastorehelper y datastore service en los modelos

Instalación 🔧

ejecutar en la raiz del proyecto el siguiente comando

npm i datastorehelper

Posterior a la instalación la libreria esta lista para ser utilizada

Creación de un modelo habilitado para utilizar la libreria 🧠

import { DatastoreHelper, DatastoreInterface } from "datastorehelper";

export class Model extends DatastoreHelper implements DatastoreInterface{
      public nonIndexed:string[] = ['field1', 'field3', 'field4', 'field5'];
      public kind:string = 'Client';
      public urlsafe?:any;
      public field1?: any;
      public field2?: any;
      public field3?: any;
      public field4?: any;
      public field5?: any;
      public field6?: any;
}

Ejemplo CRUD(create,read,update,delete) ⚙️

INSERTAR

let obj: Model = Object.assign(new Model(), req.body);

let modelInserted:InsertResult = await obj.insert(obj);
//modelInserted.key = key del objeto insertado
//modelInserted.entity = cuerpo del objeto insertado

res.json({
    status:200,
    model:modelInserted.entity
});

ACTUALIZAR

let id = req.params.id;
let obj: Model = Object.assign(new Model(), req.body);

obj.update(id, obj).then((result:any)=>{
   res.json({
       status: 200,
       model: result
   });
})

Eliminar

let id = req.params.id;
let instance: Model = new Model()

instance.delete(id).then(()=>{
    res.json({
            status: 200,
            message: `Eliminado Correctamente`
    });
});

Leer uno

import { DatastoreService, InsertResult} from 'datastorehelper';

const modelDatastore:DatastoreService = new DatastoreService();

let modelInstance: Model = new Model();
let id = req.params.id;//id es urlsafe encriptada
let instance: Model = Object.assign(new Model(), await modelInstance.read(id));
//si el modelo tiene una entity.Key se resuelve de la siguiente manera
instance.keypendiente = await modelDatastore.resolveKey(instance.keypendiente);
 res.json({
     status: 200,
     model : instance.toFirebase(instance);//toFirebase(); elimina kind,nonIndexed para no retornarlo
 });

Leer Todas las entidades de un tipo(KIND)

import { DatastoreService, InsertResult} from 'datastorehelper';

const modelDatastore:DatastoreService = new DatastoreService();
let modelInstance: Model = new Model();

      modelInstance.list(modelInstance.kind, 100).then((list: Model[]) => {
         //aca se resuelven las keys de la lista de Models
         let PendingPromise = list.map(async (model: Model) => {
            let urlsafe = await modelDatastore.keyToUrlSafeService(client.place);
            model.keypendiente = await modelDatastore.resolveKey(model.keypendiente);
            model.keypendiente.urlsafe = urlsafe;
            return model;
         });
         Promise.all(PendingPromise).then(results => {
            res.json({
               status: 200,
               clients: results,
               results: results.length,
            });
            return;
         });
      });

Novedades 🤘

* Ahora los metodos son compatibles y retornar datos que pueden ser asignables al modelo enviado

Autores ✒️

Mantenimiento de la libreria y creacion

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.6

4 years ago

1.4.7

4 years ago

1.4.5

4 years ago

1.4.4

4 years ago

1.4.3

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.3.7

4 years ago

1.4.0

4 years ago

1.3.9

4 years ago

1.3.8

4 years ago

1.3.6

4 years ago

1.3.5

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.2.8

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.0

4 years ago

1.1.9

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago

1.1.8

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.5

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago