Skip to content

Commit d53de73

Browse files
committed
Adding support to search project via customer/manager handles
1 parent 99282bc commit d53de73

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

src/routes/projects/list.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,13 +333,13 @@ const parseElasticSearchCriteria = (criteria, fields, order) => {
333333
if (_.has(criteria, 'filters.customer')) {
334334
mustQuery = _.concat(mustQuery, setFilter('customer',
335335
criteria.filters.customer,
336-
['members.firstName', 'members.lastName']));
336+
['members.firstName', 'members.lastName', 'members.handle']));
337337
}
338338

339339
if (_.has(criteria, 'filters.manager')) {
340340
mustQuery = _.concat(mustQuery, setFilter('manager',
341341
criteria.filters.manager,
342-
['members.firstName', 'members.lastName']));
342+
['members.firstName', 'members.lastName', 'members.handle']));
343343
}
344344

345345
if (_.has(criteria, 'filters.userId') || _.has(criteria, 'filters.email')) {

src/routes/projects/list.spec.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,52 @@ describe('LIST Project', () => {
683683
});
684684
});
685685

686+
it('should return all projects that match when filtering by customer handle', (done) => {
687+
request(server)
688+
.get('/v5/projects/?customer=*tourist*')
689+
.set({
690+
Authorization: `Bearer ${testUtil.jwts.admin}`,
691+
})
692+
.expect('Content-Type', /json/)
693+
.expect(200)
694+
.end((err, res) => {
695+
if (err) {
696+
done(err);
697+
} else {
698+
const resJson = res.body;
699+
should.exist(resJson);
700+
resJson.should.have.lengthOf(1);
701+
resJson[0].name.should.equal('test1');
702+
resJson[0].members.should.have.deep.property('[0].role', 'customer');
703+
resJson[0].members[0].userId.should.equal(40051331);
704+
done();
705+
}
706+
});
707+
});
708+
709+
it('should return all projects that match when filtering by manager handle', (done) => {
710+
request(server)
711+
.get('/v5/projects/?manager=*_handle')
712+
.set({
713+
Authorization: `Bearer ${testUtil.jwts.admin}`,
714+
})
715+
.expect('Content-Type', /json/)
716+
.expect(200)
717+
.end((err, res) => {
718+
if (err) {
719+
done(err);
720+
} else {
721+
const resJson = res.body;
722+
should.exist(resJson);
723+
resJson.should.have.lengthOf(1);
724+
resJson[0].name.should.equal('test3');
725+
resJson[0].members.should.have.deep.property('[0].role', 'manager');
726+
resJson[0].members[0].userId.should.equal(40051334);
727+
done();
728+
}
729+
});
730+
});
731+
686732
it('should return list of projects ordered ascending by lastActivityAt when sort column is "lastActivityAt"', (done) => {
687733
request(server)
688734
.get('/v5/projects/?sort=lastActivityAt')

0 commit comments

Comments
 (0)