Merge branch 'develop' into feature/#71-settings-store

# Conflicts:
#	src/data-source.ts
This commit is contained in:
Julian Krauser 2025-04-30 12:30:55 +02:00
commit 753cfdd5da
8 changed files with 85 additions and 11 deletions

View file

@ -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 DatabaseActionException from "../../../exceptions/databaseActionException";
@ -29,9 +29,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]))
@ -155,6 +158,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>}