bonsaif 1.10.29 → 1.10.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/hookup/redis.js +115 -5
  2. package/package.json +1 -1
@@ -252,6 +252,36 @@ const smembers=async( options, db, key, toJson )=>{ // SMEMBERS key
252
252
  })
253
253
  }
254
254
 
255
+ const sinter=async(options, db, keys)=>{ // SINTER key [key ...]
256
+ const exec = require("./exec");
257
+ const redisConn = await exec.redisConn(options);
258
+ const start = Date.now();
259
+
260
+ // Asegurarse de que keys sea un array
261
+ if (!Array.isArray(keys)) {
262
+ keys = [keys];
263
+ }
264
+
265
+ return new Promise((resolve, reject)=>{
266
+ try{
267
+ redisConn.select(db,function() { /* ... */ }); //base 1
268
+ redisConn.sinter(keys, function (err, res) {
269
+ const end = Date.now();
270
+ const time = end - start;
271
+
272
+ resolve({"sinter":keys, "err":err, "res":res, "time":utl.milisegundosASegundos(time)});
273
+ try{
274
+ exec.redisClose(redisConn);
275
+ }catch(e){
276
+ utl.log('err.sinter '+e);
277
+ }
278
+ });
279
+ }catch(e){
280
+ utl.log('err sinter'+e);
281
+ }
282
+ })
283
+ }
284
+
255
285
  const scard=async( options, db, key )=>{ // SCARD key
256
286
  const exec = require("./exec");
257
287
  const redisConn = await exec.redisConn(options);
@@ -277,6 +307,37 @@ const scard=async( options, db, key )=>{ // SCARD key
277
307
  })
278
308
  }
279
309
 
310
+ const sunionstore=async( options, db, destination, keys )=>{ // SUNIONSTORE destination key [key ...]
311
+ const exec = require("./exec");
312
+ const redisConn = await exec.redisConn(options);
313
+ const start = Date.now();
314
+
315
+ // Asegurarse de que keys sea un array
316
+ if (!Array.isArray(keys)) {
317
+ keys = [keys];
318
+ }
319
+
320
+ return new Promise((resolve, reject)=>{
321
+ try{
322
+ redisConn.select(db,function() { /* ... */ }); //base 1
323
+ redisConn.sunionstore([destination, ...keys], function (err, res) {
324
+
325
+ const end = Date.now();
326
+ const time = end - start;
327
+
328
+ resolve({"sunionstore":destination, "keys":keys, "err":err, "res":res, "time":utl.milisegundosASegundos(time)});
329
+ try{
330
+ exec.redisClose(redisConn);
331
+ }catch(e){
332
+ utl.log('err.sunionstore '+e);
333
+ }
334
+ });
335
+ }catch(e){
336
+ utl.log('err sunionstore'+e);
337
+ }
338
+ })
339
+ }
340
+
280
341
  const hset=async( options,db, key, values )=>{ // HSET key field value [ field value ...]
281
342
  const exec = require("./exec");
282
343
  const redisConn = await exec.redisConn(options);
@@ -308,7 +369,7 @@ const hset=async( options,db, key, values )=>{ // HSET key field value [ field
308
369
  })
309
370
  }
310
371
 
311
- const hgetall=async(options, db, key )=>{ // SMEMBERS key
372
+ const hgetall=async(options, db, key )=>{ // HGETALL key
312
373
  const exec = require("./exec");
313
374
  const redisConn = await exec.redisConn(options);
314
375
  const start = Date.now();
@@ -331,6 +392,44 @@ const hgetall=async(options, db, key )=>{ // SMEMBERS key
331
392
  })
332
393
  }
333
394
 
395
+ const hmget=async(options, db, key, fields )=>{ // HMGET key field [field ...]
396
+ const exec = require("./exec");
397
+ const redisConn = await exec.redisConn(options);
398
+ const start = Date.now();
399
+
400
+ // Asegurarse de que fields sea un array
401
+ if (!Array.isArray(fields)) {
402
+ fields = [fields];
403
+ }
404
+
405
+ return new Promise((resolve, reject)=>{
406
+ try{
407
+ redisConn.select(db,function() { /* ... */ }); //base 1
408
+ redisConn.hmget(key, fields, function (err, res) {
409
+ const end = Date.now();
410
+ const time = end - start;
411
+
412
+ // Crear un objeto con los campos y valores
413
+ let result = {};
414
+ if (res) {
415
+ fields.forEach((field, index) => {
416
+ result[field] = res[index];
417
+ });
418
+ }
419
+
420
+ resolve({"hmget":key, "fields":fields, "err":err, "res":result, "time":utl.milisegundosASegundos(time)});
421
+ try{
422
+ exec.redisClose(redisConn);
423
+ }catch(e){
424
+ utl.log('err.hmget '+e);
425
+ }
426
+ });
427
+ }catch(e){
428
+ utl.log('err hmget'+e);
429
+ }
430
+ })
431
+ }
432
+
334
433
  const del=async( options,db, key )=>{ //DEL key [key ...]
335
434
  const exec = require("./exec");
336
435
  const redisConn = await exec.redisConn(options);
@@ -570,7 +669,7 @@ const hmset=async( options,db, key, values )=>{ // HSET key field value [ field
570
669
  }
571
670
 
572
671
 
573
- const expire_=async( options,db, key, expire )=>{ // HSET key field value [ field value ...]
672
+ const expire=async( options,db, key, expire )=>{ // EXPIRE key seconds
574
673
  const exec = require("./exec");
575
674
  const redisConn = await exec.redisConn(options);
576
675
  const start = Date.now();
@@ -579,7 +678,6 @@ const expire_=async( options,db, key, expire )=>{ // HSET key field value [ fie
579
678
  return new Promise((resolve, reject)=>{
580
679
  try{
581
680
  redisConn.select(db,function() { /* ... */ }); //base 1
582
- // hset con multiples campos esta depreciado en versiones mayores a node 6
583
681
  redisConn.expire(key, expire, function (err, res) {
584
682
  const end = Date.now();
585
683
  const time = end - start;
@@ -662,7 +760,7 @@ const api=async(options, dbm, json)=>{
662
760
  let lstop = json.stop!=null?json.stop*1:-1;
663
761
  let {field:id, val:vid} = getFirstField(filter);
664
762
 
665
- let ltdml = ['hfind','upsert','set','get','scan','incrby','sadd','srem','smembers','hset','hgetall','del','incrbyfloat','expireat','setnx','hsetnx','hmset','expire','lrange','keys'];
763
+ let ltdml = ['sinter','sunionstore','scard','hmget','hfind','upsert','set','get','scan','incrby','sadd','srem','smembers','hset','hgetall','del','incrbyfloat','expireat','setnx','hsetnx','hmset','expire','lrange','keys'];
666
764
  for (let x of ltdml){
667
765
  if (utl.ObjectEmpty(json,x)){
668
766
  dml = x; break;
@@ -671,6 +769,10 @@ const api=async(options, dbm, json)=>{
671
769
 
672
770
  try{ eval(` key = json.${dml}; `); } catch(e){}
673
771
 
772
+ let keysArray = json.keys!=null ? json.keys : [];
773
+ let fieldsArray = json.fields!=null ? json.fields : [];
774
+ let destination = json.destination!=null ? json.destination : '';
775
+
674
776
  let r;
675
777
  switch (dml){
676
778
  case 'set': r = await set(options,dbm,key,value,expire); break;
@@ -690,9 +792,13 @@ const api=async(options, dbm, json)=>{
690
792
  case 'setnx': r = await setnx(options,dbm,key,value,expire); break;
691
793
  case 'hsetnx': r = await hsetnx(options,dbm,key,value,expire); break;
692
794
  case 'hmset': r = await hmset(options,dbm,key,value,expire); break;
693
- //case 'expire': r = await expire_(options,dbm,key,expire); break;
795
+ case 'expire': r = await expire(options,dbm,key,expire); break;
694
796
  case 'lrange': r = await lrange(options,dbm,key,lstart,lstop); break;
695
797
  case 'keys': r = await keys(options,dbm,key); break;
798
+ case 'sinter': r = await sinter(options,dbm,Array.isArray(key) ? key : [key]); break;
799
+ case 'hmget': r = await hmget(options,dbm,key,fieldsArray); break;
800
+ case 'sunionstore': r = await sunionstore(options,dbm,destination,keysArray); break;
801
+ case 'scard': r = await scard(options,dbm,key); break;
696
802
  default: r = {"dml":"404", "err":"dml not found."};
697
803
  }
698
804
 
@@ -788,14 +894,18 @@ module.exports ={
788
894
  sadd,
789
895
  srem,
790
896
  smembers,
897
+ sinter,
791
898
  scard,
899
+ sunionstore,
792
900
  hset,
793
901
  hgetall,
902
+ hmget,
794
903
  del,
795
904
  hfind,
796
905
  upsert,
797
906
  api,
798
907
  incrbyfloat,
908
+ expire,
799
909
  expireat,
800
910
  lrange,
801
911
  keys
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "name": "bonsaif",
16
16
  "description": "bonsaif is a library to connect to bonsaif apis",
17
- "version": "1.10.29",
17
+ "version": "1.10.31",
18
18
  "main": "index.js",
19
19
  "directories": {
20
20
  "lib": "lib"