Files
immich/server/src/repositories/album-user.repository.ts
T
Jason Rasmussen e6a666f1d3 refactor(server): telemetry (#13588)
refactor: telemetry
2024-10-21 23:52:30 +00:00

27 lines
1.1 KiB
TypeScript

import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { AlbumUserEntity } from 'src/entities/album-user.entity';
import { AlbumPermissionId, IAlbumUserRepository } from 'src/interfaces/album-user.interface';
import { Repository } from 'typeorm';
@Injectable()
export class AlbumUserRepository implements IAlbumUserRepository {
constructor(@InjectRepository(AlbumUserEntity) private repository: Repository<AlbumUserEntity>) {}
async create(albumUser: Partial<AlbumUserEntity>): Promise<AlbumUserEntity> {
const { userId, albumId } = await this.repository.save(albumUser);
return this.repository.findOneOrFail({ where: { userId, albumId } });
}
async update({ userId, albumId }: AlbumPermissionId, dto: Partial<AlbumUserEntity>): Promise<AlbumUserEntity> {
await this.repository.update({ userId, albumId }, dto);
return this.repository.findOneOrFail({
where: { userId, albumId },
});
}
async delete({ userId, albumId }: AlbumPermissionId): Promise<void> {
await this.repository.delete({ userId, albumId });
}
}