Refactor order service (#2751)

pull/2752/head^2
Thomas Kaul 10 months ago committed by GitHub
parent 492bc5e17b
commit 28706d7b26
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -20,6 +20,7 @@ export class ExportController {
): Promise<Export> { ): Promise<Export> {
return this.exportService.export({ return this.exportService.export({
activityIds, activityIds,
userCurrency: this.request.user.Settings.settings.baseCurrency,
userId: this.request.user.id userId: this.request.user.id
}); });
} }

@ -13,9 +13,11 @@ export class ExportService {
public async export({ public async export({
activityIds, activityIds,
userCurrency,
userId userId
}: { }: {
activityIds?: string[]; activityIds?: string[];
userCurrency: string;
userId: string; userId: string;
}): Promise<Export> { }): Promise<Export> {
const accounts = ( const accounts = (
@ -39,10 +41,13 @@ export class ExportService {
} }
); );
let activities = await this.orderService.orders({ let { activities } = await this.orderService.getOrders({
include: { SymbolProfile: true }, userCurrency,
orderBy: { date: 'desc' }, userId,
where: { userId } includeDrafts: true,
sortColumn: 'date',
sortDirection: 'asc',
withExcludedAccounts: true
}); });
if (activityIds) { if (activityIds) {

@ -236,6 +236,7 @@ export class ImportService {
const activitiesExtendedWithErrors = await this.extendActivitiesWithErrors({ const activitiesExtendedWithErrors = await this.extendActivitiesWithErrors({
activitiesDto, activitiesDto,
userCurrency,
userId userId
}); });
@ -459,15 +460,18 @@ export class ImportService {
private async extendActivitiesWithErrors({ private async extendActivitiesWithErrors({
activitiesDto, activitiesDto,
userCurrency,
userId userId
}: { }: {
activitiesDto: Partial<CreateOrderDto>[]; activitiesDto: Partial<CreateOrderDto>[];
userCurrency: string;
userId: string; userId: string;
}): Promise<Partial<Activity>[]> { }): Promise<Partial<Activity>[]> {
const existingActivities = await this.orderService.orders({ let { activities: existingActivities } = await this.orderService.getOrders({
include: { SymbolProfile: true }, userCurrency,
orderBy: { date: 'desc' }, userId,
where: { userId } includeDrafts: true,
withExcludedAccounts: true
}); });
return activitiesDto.map( return activitiesDto.map(

@ -25,7 +25,7 @@ import { endOfToday, isAfter } from 'date-fns';
import { groupBy } from 'lodash'; import { groupBy } from 'lodash';
import { v4 as uuidv4 } from 'uuid'; import { v4 as uuidv4 } from 'uuid';
import { Activities, Activity } from './interfaces/activities.interface'; import { Activities } from './interfaces/activities.interface';
@Injectable() @Injectable()
export class OrderService { export class OrderService {
@ -37,34 +37,6 @@ export class OrderService {
private readonly symbolProfileService: SymbolProfileService private readonly symbolProfileService: SymbolProfileService
) {} ) {}
public async order(
orderWhereUniqueInput: Prisma.OrderWhereUniqueInput
): Promise<Order | null> {
return this.prismaService.order.findUnique({
where: orderWhereUniqueInput
});
}
public async orders(params: {
include?: Prisma.OrderInclude;
skip?: number;
take?: number;
cursor?: Prisma.OrderWhereUniqueInput;
where?: Prisma.OrderWhereInput;
orderBy?: Prisma.Enumerable<Prisma.OrderOrderByWithRelationInput>;
}): Promise<OrderWithAccount[]> {
const { include, skip, take, cursor, where, orderBy } = params;
return this.prismaService.order.findMany({
cursor,
include,
orderBy,
skip,
take,
where
});
}
public async createOrder( public async createOrder(
data: Prisma.OrderCreateInput & { data: Prisma.OrderCreateInput & {
accountId?: string; accountId?: string;
@ -379,6 +351,14 @@ export class OrderService {
return { activities, count }; return { activities, count };
} }
public async order(
orderWhereUniqueInput: Prisma.OrderWhereUniqueInput
): Promise<Order | null> {
return this.prismaService.order.findUnique({
where: orderWhereUniqueInput
});
}
public async updateOrder({ public async updateOrder({
data, data,
where where
@ -455,4 +435,24 @@ export class OrderService {
where where
}); });
} }
private async orders(params: {
include?: Prisma.OrderInclude;
skip?: number;
take?: number;
cursor?: Prisma.OrderWhereUniqueInput;
where?: Prisma.OrderWhereInput;
orderBy?: Prisma.Enumerable<Prisma.OrderOrderByWithRelationInput>;
}): Promise<OrderWithAccount[]> {
const { include, skip, take, cursor, where, orderBy } = params;
return this.prismaService.order.findMany({
cursor,
include,
orderBy,
skip,
take,
where
});
}
} }

Loading…
Cancel
Save