Files
immich/server/libs/database/src/entities/user-album.entity.ts

28 lines
702 B
TypeScript
Raw Normal View History

Refactor API for albums feature (#155) * Rename "shared" to "album" Prepare moving "SharedAlbums" to "Albums" * Update server album API endpoints * Update mobile app album endpoints Also add `putRequest` to mobile network.service * Add GET album collection filter - allow to filter by owner = 'mine' | 'their' - make sharedWithUserIds no longer required when creating an album * Rename remaining variables to "album" * Add ParseMeUUIDPipe to validate uuid or `me` * Add album params validation * Update todo in mobile album service. * Setup e2e testing * Add user e2e tests * Rename database host env variable to DB_HOST * Add some `Album` e2e tests Also fix issues found with the tests * Force push (try to recover DB_HOST env) * Rename db host env variable to `DB_HOSTNAME` * Remove unnecessary `initDb` from test-utils The current database.config is running the migrations: `migrationsRun: true` * Remove `initDb` usage from album e2e test * Update GET albums filter to `shared` - add filter by all / shared / not shared - add response DTOs - add GET albums e2e tests * Update album e2e tests for user.service changes * Update mobile app to use album response DTOs * Refactor album-service DB into album-registry - DB logic refactored into album-repository making it easier to test - add some album-service unit tests - add `clearMocks` to jest configuration * Finish implementing album.service unit tests * Rename response DTO Make them consistent with rest of the project naming * Update debug log messages in mobile network service * Rename table `shared_albums` to `albums` * Rename table `asset_shared_album` * Rename Albums `sharedAssets` to `assets` * Update tests to match updated "delete" response * Fixed asset cannot be compared in Set by adding Equatable package * Remove hero effect to fixed janky animation Co-authored-by: Alex <alex.tran1502@gmail.com>
2022-06-18 17:56:36 +02:00
import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, Unique } from 'typeorm';
WIP refactor container and queuing system (#206) * refactor microservices to machine-learning * Update tGithub issue template with correct task syntax * Added microservices container * Communicate between service based on queue system * added dependency * Fixed problem with having to import BullQueue into the individual service * Added todo * refactor server into monorepo with microservices * refactor database and entity to library * added simple migration * Move migrations and database config to library * Migration works in library * Cosmetic change in logging message * added user dto * Fixed issue with testing not able to find the shared library * Clean up library mapping path * Added webp generator to microservices * Update Github Action build latest * Fixed issue NPM cannot install due to conflict witl Bull Queue * format project with prettier * Modified docker-compose file * Add GH Action for Staging build: * Fixed GH action job name * Modified GH Action to only build & push latest when pushing to main * Added Test 2e2 Github Action * Added Test 2e2 Github Action * Implemented microservice to extract exif * Added cronjob to scan and generate webp thumbnail at midnight * Refactor to ireduce hit time to database when running microservices * Added error handling to asset services that handle read file from disk * Added video transcoding queue to process one video at a time * Fixed loading spinner on web while loading covering the info panel * Add mechanism to show new release announcement to web and mobile app (#209) * Added changelog page * Fixed issues based on PR comments * Fixed issue with video transcoding run on the server * Change entry point content for backward combatibility when starting up server * Added announcement box * Added error handling to failed silently when the app version checking is not able to make the request to GITHUB * Added new version announcement overlay * Update message * Added messages * Added logic to check and show announcement * Add method to handle saving new version * Added button to dimiss the acknowledge message * Up version for deployment to the app store
2022-06-11 16:12:06 -05:00
import { UserEntity } from './user.entity';
Refactor API for albums feature (#155) * Rename "shared" to "album" Prepare moving "SharedAlbums" to "Albums" * Update server album API endpoints * Update mobile app album endpoints Also add `putRequest` to mobile network.service * Add GET album collection filter - allow to filter by owner = 'mine' | 'their' - make sharedWithUserIds no longer required when creating an album * Rename remaining variables to "album" * Add ParseMeUUIDPipe to validate uuid or `me` * Add album params validation * Update todo in mobile album service. * Setup e2e testing * Add user e2e tests * Rename database host env variable to DB_HOST * Add some `Album` e2e tests Also fix issues found with the tests * Force push (try to recover DB_HOST env) * Rename db host env variable to `DB_HOSTNAME` * Remove unnecessary `initDb` from test-utils The current database.config is running the migrations: `migrationsRun: true` * Remove `initDb` usage from album e2e test * Update GET albums filter to `shared` - add filter by all / shared / not shared - add response DTOs - add GET albums e2e tests * Update album e2e tests for user.service changes * Update mobile app to use album response DTOs * Refactor album-service DB into album-registry - DB logic refactored into album-repository making it easier to test - add some album-service unit tests - add `clearMocks` to jest configuration * Finish implementing album.service unit tests * Rename response DTO Make them consistent with rest of the project naming * Update debug log messages in mobile network service * Rename table `shared_albums` to `albums` * Rename table `asset_shared_album` * Rename Albums `sharedAssets` to `assets` * Update tests to match updated "delete" response * Fixed asset cannot be compared in Set by adding Equatable package * Remove hero effect to fixed janky animation Co-authored-by: Alex <alex.tran1502@gmail.com>
2022-06-18 17:56:36 +02:00
import { AlbumEntity } from './album.entity';
@Entity('user_shared_album')
@Unique('PK_unique_user_in_album', ['albumId', 'sharedUserId'])
Refactor API for albums feature (#155) * Rename "shared" to "album" Prepare moving "SharedAlbums" to "Albums" * Update server album API endpoints * Update mobile app album endpoints Also add `putRequest` to mobile network.service * Add GET album collection filter - allow to filter by owner = 'mine' | 'their' - make sharedWithUserIds no longer required when creating an album * Rename remaining variables to "album" * Add ParseMeUUIDPipe to validate uuid or `me` * Add album params validation * Update todo in mobile album service. * Setup e2e testing * Add user e2e tests * Rename database host env variable to DB_HOST * Add some `Album` e2e tests Also fix issues found with the tests * Force push (try to recover DB_HOST env) * Rename db host env variable to `DB_HOSTNAME` * Remove unnecessary `initDb` from test-utils The current database.config is running the migrations: `migrationsRun: true` * Remove `initDb` usage from album e2e test * Update GET albums filter to `shared` - add filter by all / shared / not shared - add response DTOs - add GET albums e2e tests * Update album e2e tests for user.service changes * Update mobile app to use album response DTOs * Refactor album-service DB into album-registry - DB logic refactored into album-repository making it easier to test - add some album-service unit tests - add `clearMocks` to jest configuration * Finish implementing album.service unit tests * Rename response DTO Make them consistent with rest of the project naming * Update debug log messages in mobile network service * Rename table `shared_albums` to `albums` * Rename table `asset_shared_album` * Rename Albums `sharedAssets` to `assets` * Update tests to match updated "delete" response * Fixed asset cannot be compared in Set by adding Equatable package * Remove hero effect to fixed janky animation Co-authored-by: Alex <alex.tran1502@gmail.com>
2022-06-18 17:56:36 +02:00
export class UserAlbumEntity {
@PrimaryGeneratedColumn()
id!: string;
@Column()
albumId!: string;
@Column()
sharedUserId!: string;
Refactor API for albums feature (#155) * Rename "shared" to "album" Prepare moving "SharedAlbums" to "Albums" * Update server album API endpoints * Update mobile app album endpoints Also add `putRequest` to mobile network.service * Add GET album collection filter - allow to filter by owner = 'mine' | 'their' - make sharedWithUserIds no longer required when creating an album * Rename remaining variables to "album" * Add ParseMeUUIDPipe to validate uuid or `me` * Add album params validation * Update todo in mobile album service. * Setup e2e testing * Add user e2e tests * Rename database host env variable to DB_HOST * Add some `Album` e2e tests Also fix issues found with the tests * Force push (try to recover DB_HOST env) * Rename db host env variable to `DB_HOSTNAME` * Remove unnecessary `initDb` from test-utils The current database.config is running the migrations: `migrationsRun: true` * Remove `initDb` usage from album e2e test * Update GET albums filter to `shared` - add filter by all / shared / not shared - add response DTOs - add GET albums e2e tests * Update album e2e tests for user.service changes * Update mobile app to use album response DTOs * Refactor album-service DB into album-registry - DB logic refactored into album-repository making it easier to test - add some album-service unit tests - add `clearMocks` to jest configuration * Finish implementing album.service unit tests * Rename response DTO Make them consistent with rest of the project naming * Update debug log messages in mobile network service * Rename table `shared_albums` to `albums` * Rename table `asset_shared_album` * Rename Albums `sharedAssets` to `assets` * Update tests to match updated "delete" response * Fixed asset cannot be compared in Set by adding Equatable package * Remove hero effect to fixed janky animation Co-authored-by: Alex <alex.tran1502@gmail.com>
2022-06-18 17:56:36 +02:00
@ManyToOne(() => AlbumEntity, (album) => album.sharedUsers, {
onDelete: 'CASCADE',
nullable: true,
})
@JoinColumn({ name: 'albumId' })
albumInfo!: AlbumEntity;
@ManyToOne(() => UserEntity)
@JoinColumn({ name: 'sharedUserId' })
userInfo!: UserEntity;
}