Skip to content

Commit d829444

Browse files
add findMany
1 parent 7cc7a21 commit d829444

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

spec/resource.spec.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { ValidationError, Filter } = require('admin-bro')
1+
const { ValidationError, Filter, BaseRecord } = require('admin-bro')
22
const Resource = require('../src/resource')
33
const Property = require('../src/property')
44
const config = require('../config/config')[process.env.NODE_ENV]
@@ -10,12 +10,12 @@ describe('Resource', function () {
1010
this.resource = new Resource(this.SequelizeModel)
1111
})
1212

13-
after(function () {
14-
db.sequelize.close()
13+
after(async function () {
14+
await db.sequelize.close()
1515
})
1616

17-
afterEach(function () {
18-
this.SequelizeModel.destroy({ where: {} })
17+
afterEach(async function () {
18+
await this.SequelizeModel.destroy({ where: {} })
1919
})
2020

2121
describe('.isAdapterFor', function () {
@@ -61,6 +61,17 @@ describe('Resource', function () {
6161
})
6262
})
6363

64+
describe('#findMany', function () {
65+
it('returns array of BaseRecords', async function () {
66+
const params = await this.resource.create(this.params)
67+
68+
const records = await this.resource.findMany([params.id])
69+
70+
expect(records).to.have.lengthOf(1)
71+
expect(records[0]).to.be.instanceOf(BaseRecord)
72+
})
73+
})
74+
6475
describe('#count', function () {
6576
it('returns 0 when there are none elements', async function () {
6677
const count = await this.resource.count(new Filter({}))

src/resource.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
/* eslint-disable no-param-reassign */
22

3-
const {
4-
BaseResource,
5-
BaseRecord,
6-
ValidationError,
7-
} = require('admin-bro')
3+
const { BaseResource, BaseRecord, ValidationError } = require('admin-bro')
4+
const { Op } = require('sequelize')
85

96
const Property = require('./property')
107
const convertFilter = require('./utils/convert-filter')
@@ -99,6 +96,15 @@ class Resource extends BaseResource {
9996
return new BaseRecord(sequelizeObject.toJSON(), this)
10097
}
10198

99+
async findMany(ids) {
100+
const sequelizeObjects = await this.SequelizeModel.findAll({
101+
where: {
102+
id: { [Op.in]: ids },
103+
},
104+
})
105+
return sequelizeObjects.map(sequelizeObject => new BaseRecord(sequelizeObject.toJSON(), this))
106+
}
107+
102108
async findById(id) {
103109
// versions of Sequelize before 5 had findById method - after that there was findByPk
104110
const method = this.SequelizeModel.findByPk ? 'findByPk' : 'findById'

0 commit comments

Comments
 (0)