enhance: provide latest inserted internal Id
This commit is contained in:
parent
a827185bf1
commit
a6229bb77c
6 changed files with 83 additions and 5 deletions
|
@ -1,4 +1,4 @@
|
|||
import { Brackets, Like, SelectQueryBuilder } from "typeorm";
|
||||
import { Brackets, Like, Not, SelectQueryBuilder } from "typeorm";
|
||||
import { dataSource } from "../../../data-source";
|
||||
import { member } from "../../../entity/club/member/member";
|
||||
import { membership } from "../../../entity/club/member/membership";
|
||||
|
@ -31,9 +31,12 @@ export default abstract class MemberService {
|
|||
let searchBits = search.split(" ");
|
||||
|
||||
if (searchBits.length < 2) {
|
||||
query = query.where(`member.firstname LIKE :searchQuery OR member.lastname LIKE :searchQuery`, {
|
||||
searchQuery: `%${searchBits[0]}%`,
|
||||
});
|
||||
query = query.where(
|
||||
`member.firstname LIKE :searchQuery OR member.lastname LIKE :searchQuery OR member.internalId LIKE :searchQuery`,
|
||||
{
|
||||
searchQuery: `%${searchBits[0]}%`,
|
||||
}
|
||||
);
|
||||
} else {
|
||||
searchBits
|
||||
.flatMap((v, i) => searchBits.slice(i + 1).map((w) => [v, w]))
|
||||
|
@ -157,6 +160,28 @@ export default abstract class MemberService {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get latest inserted memberId
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
static async getLatestInternalId(): Promise<string> {
|
||||
return await dataSource
|
||||
.getRepository(member)
|
||||
.createQueryBuilder("member")
|
||||
.where("member.internalId IS NOT NULL")
|
||||
.andWhere({ internalId: Not("") })
|
||||
.orderBy("member.createdAt", "DESC")
|
||||
.addOrderBy("member.internalId", "DESC")
|
||||
.limit(1)
|
||||
.getOne()
|
||||
.then((res) => {
|
||||
return res?.internalId ?? "";
|
||||
})
|
||||
.catch((err) => {
|
||||
throw new DatabaseActionException("SELECT", "memberId", err);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description apply member joins to query
|
||||
* @returns {SelectQueryBuilder<member>}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue