mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:29:32 -05:00 
			
		
		
		
	refactor(server): plural endpoints (#9667)
This commit is contained in:
		
							parent
							
								
									6a4c2e97c0
								
							
						
					
					
						commit
						202745f14b
					
				@ -14,7 +14,7 @@ import { app, asBearerAuth, utils } from 'src/utils';
 | 
				
			|||||||
import request from 'supertest';
 | 
					import request from 'supertest';
 | 
				
			||||||
import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
 | 
					import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('/activity', () => {
 | 
					describe('/activities', () => {
 | 
				
			||||||
  let admin: LoginResponseDto;
 | 
					  let admin: LoginResponseDto;
 | 
				
			||||||
  let nonOwner: LoginResponseDto;
 | 
					  let nonOwner: LoginResponseDto;
 | 
				
			||||||
  let asset: AssetFileUploadResponseDto;
 | 
					  let asset: AssetFileUploadResponseDto;
 | 
				
			||||||
@ -45,22 +45,24 @@ describe('/activity', () => {
 | 
				
			|||||||
    await utils.resetDatabase(['activity']);
 | 
					    await utils.resetDatabase(['activity']);
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /activity', () => {
 | 
					  describe('GET /activities', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/activity');
 | 
					      const { status, body } = await request(app).get('/activities');
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should require an albumId', async () => {
 | 
					    it('should require an albumId', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/activity').set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
 | 
					        .get('/activities')
 | 
				
			||||||
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(400);
 | 
					      expect(status).toEqual(400);
 | 
				
			||||||
      expect(body).toEqual(errorDto.badRequest(expect.arrayContaining(['albumId must be a UUID'])));
 | 
					      expect(body).toEqual(errorDto.badRequest(expect.arrayContaining(['albumId must be a UUID'])));
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should reject an invalid albumId', async () => {
 | 
					    it('should reject an invalid albumId', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: uuidDto.invalid })
 | 
					        .query({ albumId: uuidDto.invalid })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(400);
 | 
					      expect(status).toEqual(400);
 | 
				
			||||||
@ -69,7 +71,7 @@ describe('/activity', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should reject an invalid assetId', async () => {
 | 
					    it('should reject an invalid assetId', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: uuidDto.notFound, assetId: uuidDto.invalid })
 | 
					        .query({ albumId: uuidDto.notFound, assetId: uuidDto.invalid })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(400);
 | 
					      expect(status).toEqual(400);
 | 
				
			||||||
@ -78,7 +80,7 @@ describe('/activity', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should start off empty', async () => {
 | 
					    it('should start off empty', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: album.id })
 | 
					        .query({ albumId: album.id })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(body).toEqual([]);
 | 
					      expect(body).toEqual([]);
 | 
				
			||||||
@ -102,7 +104,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      ]);
 | 
					      ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: album.id })
 | 
					        .query({ albumId: album.id })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(200);
 | 
					      expect(status).toEqual(200);
 | 
				
			||||||
@ -121,7 +123,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      ]);
 | 
					      ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: album.id, type: 'comment' })
 | 
					        .query({ albumId: album.id, type: 'comment' })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(200);
 | 
					      expect(status).toEqual(200);
 | 
				
			||||||
@ -140,7 +142,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      ]);
 | 
					      ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: album.id, type: 'like' })
 | 
					        .query({ albumId: album.id, type: 'like' })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(200);
 | 
					      expect(status).toEqual(200);
 | 
				
			||||||
@ -152,7 +154,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      const reaction = await createActivity({ albumId: album.id, type: ReactionType.Like });
 | 
					      const reaction = await createActivity({ albumId: album.id, type: ReactionType.Like });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const response1 = await request(app)
 | 
					      const response1 = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: album.id, userId: uuidDto.notFound })
 | 
					        .query({ albumId: album.id, userId: uuidDto.notFound })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -160,7 +162,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      expect(response1.body.length).toBe(0);
 | 
					      expect(response1.body.length).toBe(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const response2 = await request(app)
 | 
					      const response2 = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: album.id, userId: admin.userId })
 | 
					        .query({ albumId: album.id, userId: admin.userId })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -180,7 +182,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      ]);
 | 
					      ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/activity')
 | 
					        .get('/activities')
 | 
				
			||||||
        .query({ albumId: album.id, assetId: asset.id })
 | 
					        .query({ albumId: album.id, assetId: asset.id })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(200);
 | 
					      expect(status).toEqual(200);
 | 
				
			||||||
@ -189,16 +191,16 @@ describe('/activity', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /activity', () => {
 | 
					  describe('POST /activities', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post('/activity');
 | 
					      const { status, body } = await request(app).post('/activities');
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should require an albumId', async () => {
 | 
					    it('should require an albumId', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ albumId: uuidDto.invalid });
 | 
					        .send({ albumId: uuidDto.invalid });
 | 
				
			||||||
      expect(status).toEqual(400);
 | 
					      expect(status).toEqual(400);
 | 
				
			||||||
@ -207,7 +209,7 @@ describe('/activity', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should require a comment when type is comment', async () => {
 | 
					    it('should require a comment when type is comment', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ albumId: uuidDto.notFound, type: 'comment', comment: null });
 | 
					        .send({ albumId: uuidDto.notFound, type: 'comment', comment: null });
 | 
				
			||||||
      expect(status).toEqual(400);
 | 
					      expect(status).toEqual(400);
 | 
				
			||||||
@ -216,7 +218,7 @@ describe('/activity', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should add a comment to an album', async () => {
 | 
					    it('should add a comment to an album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          albumId: album.id,
 | 
					          albumId: album.id,
 | 
				
			||||||
@ -236,7 +238,7 @@ describe('/activity', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should add a like to an album', async () => {
 | 
					    it('should add a like to an album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ albumId: album.id, type: 'like' });
 | 
					        .send({ albumId: album.id, type: 'like' });
 | 
				
			||||||
      expect(status).toEqual(201);
 | 
					      expect(status).toEqual(201);
 | 
				
			||||||
@ -253,7 +255,7 @@ describe('/activity', () => {
 | 
				
			|||||||
    it('should return a 200 for a duplicate like on the album', async () => {
 | 
					    it('should return a 200 for a duplicate like on the album', async () => {
 | 
				
			||||||
      const reaction = await createActivity({ albumId: album.id, type: ReactionType.Like });
 | 
					      const reaction = await createActivity({ albumId: album.id, type: ReactionType.Like });
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ albumId: album.id, type: 'like' });
 | 
					        .send({ albumId: album.id, type: 'like' });
 | 
				
			||||||
      expect(status).toEqual(200);
 | 
					      expect(status).toEqual(200);
 | 
				
			||||||
@ -267,7 +269,7 @@ describe('/activity', () => {
 | 
				
			|||||||
        type: ReactionType.Like,
 | 
					        type: ReactionType.Like,
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ albumId: album.id, type: 'like' });
 | 
					        .send({ albumId: album.id, type: 'like' });
 | 
				
			||||||
      expect(status).toEqual(201);
 | 
					      expect(status).toEqual(201);
 | 
				
			||||||
@ -276,7 +278,7 @@ describe('/activity', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should add a comment to an asset', async () => {
 | 
					    it('should add a comment to an asset', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          albumId: album.id,
 | 
					          albumId: album.id,
 | 
				
			||||||
@ -297,7 +299,7 @@ describe('/activity', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should add a like to an asset', async () => {
 | 
					    it('should add a like to an asset', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ albumId: album.id, assetId: asset.id, type: 'like' });
 | 
					        .send({ albumId: album.id, assetId: asset.id, type: 'like' });
 | 
				
			||||||
      expect(status).toEqual(201);
 | 
					      expect(status).toEqual(201);
 | 
				
			||||||
@ -319,7 +321,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      });
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/activity')
 | 
					        .post('/activities')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ albumId: album.id, assetId: asset.id, type: 'like' });
 | 
					        .send({ albumId: album.id, assetId: asset.id, type: 'like' });
 | 
				
			||||||
      expect(status).toEqual(200);
 | 
					      expect(status).toEqual(200);
 | 
				
			||||||
@ -327,16 +329,16 @@ describe('/activity', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('DELETE /activity/:id', () => {
 | 
					  describe('DELETE /activities/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).delete(`/activity/${uuidDto.notFound}`);
 | 
					      const { status, body } = await request(app).delete(`/activities/${uuidDto.notFound}`);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should require a valid uuid', async () => {
 | 
					    it('should require a valid uuid', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/activity/${uuidDto.invalid}`)
 | 
					        .delete(`/activities/${uuidDto.invalid}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
      expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
 | 
					      expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
 | 
				
			||||||
@ -349,7 +351,7 @@ describe('/activity', () => {
 | 
				
			|||||||
        comment: 'This is a test comment',
 | 
					        comment: 'This is a test comment',
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .delete(`/activity/${reaction.id}`)
 | 
					        .delete(`/activities/${reaction.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(204);
 | 
					      expect(status).toEqual(204);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -360,7 +362,7 @@ describe('/activity', () => {
 | 
				
			|||||||
        type: ReactionType.Like,
 | 
					        type: ReactionType.Like,
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .delete(`/activity/${reaction.id}`)
 | 
					        .delete(`/activities/${reaction.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(204);
 | 
					      expect(status).toEqual(204);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -373,7 +375,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      });
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .delete(`/activity/${reaction.id}`)
 | 
					        .delete(`/activities/${reaction.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toEqual(204);
 | 
					      expect(status).toEqual(204);
 | 
				
			||||||
@ -387,7 +389,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      });
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/activity/${reaction.id}`)
 | 
					        .delete(`/activities/${reaction.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${nonOwner.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${nonOwner.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
@ -405,7 +407,7 @@ describe('/activity', () => {
 | 
				
			|||||||
      );
 | 
					      );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .delete(`/activity/${reaction.id}`)
 | 
					        .delete(`/activities/${reaction.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${nonOwner.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${nonOwner.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(204);
 | 
					      expect(status).toBe(204);
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@ const user2SharedUser = 'user2SharedUser';
 | 
				
			|||||||
const user2SharedLink = 'user2SharedLink';
 | 
					const user2SharedLink = 'user2SharedLink';
 | 
				
			||||||
const user2NotShared = 'user2NotShared';
 | 
					const user2NotShared = 'user2NotShared';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('/album', () => {
 | 
					describe('/albums', () => {
 | 
				
			||||||
  let admin: LoginResponseDto;
 | 
					  let admin: LoginResponseDto;
 | 
				
			||||||
  let user1: LoginResponseDto;
 | 
					  let user1: LoginResponseDto;
 | 
				
			||||||
  let user1Asset1: AssetFileUploadResponseDto;
 | 
					  let user1Asset1: AssetFileUploadResponseDto;
 | 
				
			||||||
@ -110,16 +110,16 @@ describe('/album', () => {
 | 
				
			|||||||
    await deleteUser({ id: user3.userId, deleteUserDto: {} }, { headers: asBearerAuth(admin.accessToken) });
 | 
					    await deleteUser({ id: user3.userId, deleteUserDto: {} }, { headers: asBearerAuth(admin.accessToken) });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /album', () => {
 | 
					  describe('GET /albums', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/album');
 | 
					      const { status, body } = await request(app).get('/albums');
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should reject an invalid shared param', async () => {
 | 
					    it('should reject an invalid shared param', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/album?shared=invalid')
 | 
					        .get('/albums?shared=invalid')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(400);
 | 
					      expect(status).toEqual(400);
 | 
				
			||||||
      expect(body).toEqual(errorDto.badRequest(['shared must be a boolean value']));
 | 
					      expect(body).toEqual(errorDto.badRequest(['shared must be a boolean value']));
 | 
				
			||||||
@ -127,7 +127,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should reject an invalid assetId param', async () => {
 | 
					    it('should reject an invalid assetId param', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/album?assetId=invalid')
 | 
					        .get('/albums?assetId=invalid')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(400);
 | 
					      expect(status).toEqual(400);
 | 
				
			||||||
      expect(body).toEqual(errorDto.badRequest(['assetId must be a UUID']));
 | 
					      expect(body).toEqual(errorDto.badRequest(['assetId must be a UUID']));
 | 
				
			||||||
@ -135,7 +135,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it("should not show other users' favorites", async () => {
 | 
					    it("should not show other users' favorites", async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album/${user1Albums[0].id}?withoutAssets=false`)
 | 
					        .get(`/albums/${user1Albums[0].id}?withoutAssets=false`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(200);
 | 
					      expect(status).toEqual(200);
 | 
				
			||||||
      expect(body).toEqual({
 | 
					      expect(body).toEqual({
 | 
				
			||||||
@ -146,7 +146,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not return shared albums with a deleted owner', async () => {
 | 
					    it('should not return shared albums with a deleted owner', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/album?shared=true')
 | 
					        .get('/albums?shared=true')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -178,7 +178,7 @@ describe('/album', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should return the album collection including owned and shared', async () => {
 | 
					    it('should return the album collection including owned and shared', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/album').set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					      const { status, body } = await request(app).get('/albums').set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toHaveLength(4);
 | 
					      expect(body).toHaveLength(4);
 | 
				
			||||||
      expect(body).toEqual(
 | 
					      expect(body).toEqual(
 | 
				
			||||||
@ -209,7 +209,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return the album collection filtered by shared', async () => {
 | 
					    it('should return the album collection filtered by shared', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/album?shared=true')
 | 
					        .get('/albums?shared=true')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toHaveLength(4);
 | 
					      expect(body).toHaveLength(4);
 | 
				
			||||||
@ -241,7 +241,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return the album collection filtered by NOT shared', async () => {
 | 
					    it('should return the album collection filtered by NOT shared', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/album?shared=false')
 | 
					        .get('/albums?shared=false')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toHaveLength(1);
 | 
					      expect(body).toHaveLength(1);
 | 
				
			||||||
@ -258,7 +258,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return the album collection filtered by assetId', async () => {
 | 
					    it('should return the album collection filtered by assetId', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album?assetId=${user1Asset2.id}`)
 | 
					        .get(`/albums?assetId=${user1Asset2.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toHaveLength(1);
 | 
					      expect(body).toHaveLength(1);
 | 
				
			||||||
@ -266,7 +266,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return the album collection filtered by assetId and ignores shared=true', async () => {
 | 
					    it('should return the album collection filtered by assetId and ignores shared=true', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album?shared=true&assetId=${user1Asset1.id}`)
 | 
					        .get(`/albums?shared=true&assetId=${user1Asset1.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toHaveLength(5);
 | 
					      expect(body).toHaveLength(5);
 | 
				
			||||||
@ -274,23 +274,23 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return the album collection filtered by assetId and ignores shared=false', async () => {
 | 
					    it('should return the album collection filtered by assetId and ignores shared=false', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album?shared=false&assetId=${user1Asset1.id}`)
 | 
					        .get(`/albums?shared=false&assetId=${user1Asset1.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toHaveLength(5);
 | 
					      expect(body).toHaveLength(5);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /album/:id', () => {
 | 
					  describe('GET /albums/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get(`/album/${user1Albums[0].id}`);
 | 
					      const { status, body } = await request(app).get(`/albums/${user1Albums[0].id}`);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should return album info for own album', async () => {
 | 
					    it('should return album info for own album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album/${user1Albums[0].id}?withoutAssets=false`)
 | 
					        .get(`/albums/${user1Albums[0].id}?withoutAssets=false`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -302,7 +302,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return album info for shared album (editor)', async () => {
 | 
					    it('should return album info for shared album (editor)', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album/${user2Albums[0].id}?withoutAssets=false`)
 | 
					        .get(`/albums/${user2Albums[0].id}?withoutAssets=false`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -311,7 +311,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return album info for shared album (viewer)', async () => {
 | 
					    it('should return album info for shared album (viewer)', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album/${user1Albums[3].id}?withoutAssets=false`)
 | 
					        .get(`/albums/${user1Albums[3].id}?withoutAssets=false`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -320,7 +320,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return album info with assets when withoutAssets is undefined', async () => {
 | 
					    it('should return album info with assets when withoutAssets is undefined', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album/${user1Albums[0].id}`)
 | 
					        .get(`/albums/${user1Albums[0].id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -332,7 +332,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return album info without assets when withoutAssets is true', async () => {
 | 
					    it('should return album info without assets when withoutAssets is true', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/album/${user1Albums[0].id}?withoutAssets=true`)
 | 
					        .get(`/albums/${user1Albums[0].id}?withoutAssets=true`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -344,16 +344,16 @@ describe('/album', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /album/count', () => {
 | 
					  describe('GET /albums/count', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/album/count');
 | 
					      const { status, body } = await request(app).get('/albums/count');
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should return total count of albums the user has access to', async () => {
 | 
					    it('should return total count of albums the user has access to', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/album/count')
 | 
					        .get('/albums/count')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -361,16 +361,16 @@ describe('/album', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /album', () => {
 | 
					  describe('POST /albums', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post('/album').send({ albumName: 'New album' });
 | 
					      const { status, body } = await request(app).post('/albums').send({ albumName: 'New album' });
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should create an album', async () => {
 | 
					    it('should create an album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/album')
 | 
					        .post('/albums')
 | 
				
			||||||
        .send({ albumName: 'New album' })
 | 
					        .send({ albumName: 'New album' })
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(201);
 | 
					      expect(status).toBe(201);
 | 
				
			||||||
@ -395,9 +395,9 @@ describe('/album', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('PUT /album/:id/assets', () => {
 | 
					  describe('PUT /albums/:id/assets', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).put(`/album/${user1Albums[0].id}/assets`);
 | 
					      const { status, body } = await request(app).put(`/albums/${user1Albums[0].id}/assets`);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -405,7 +405,7 @@ describe('/album', () => {
 | 
				
			|||||||
    it('should be able to add own asset to own album', async () => {
 | 
					    it('should be able to add own asset to own album', async () => {
 | 
				
			||||||
      const asset = await utils.createAsset(user1.accessToken);
 | 
					      const asset = await utils.createAsset(user1.accessToken);
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/album/${user1Albums[0].id}/assets`)
 | 
					        .put(`/albums/${user1Albums[0].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ ids: [asset.id] });
 | 
					        .send({ ids: [asset.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -416,7 +416,7 @@ describe('/album', () => {
 | 
				
			|||||||
    it('should be able to add own asset to shared album', async () => {
 | 
					    it('should be able to add own asset to shared album', async () => {
 | 
				
			||||||
      const asset = await utils.createAsset(user1.accessToken);
 | 
					      const asset = await utils.createAsset(user1.accessToken);
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/album/${user2Albums[0].id}/assets`)
 | 
					        .put(`/albums/${user2Albums[0].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ ids: [asset.id] });
 | 
					        .send({ ids: [asset.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -427,7 +427,7 @@ describe('/album', () => {
 | 
				
			|||||||
    it('should not be able to add assets to album as a viewer', async () => {
 | 
					    it('should not be able to add assets to album as a viewer', async () => {
 | 
				
			||||||
      const asset = await utils.createAsset(user2.accessToken);
 | 
					      const asset = await utils.createAsset(user2.accessToken);
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/album/${user1Albums[3].id}/assets`)
 | 
					        .put(`/albums/${user1Albums[3].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
				
			||||||
        .send({ ids: [asset.id] });
 | 
					        .send({ ids: [asset.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -438,7 +438,7 @@ describe('/album', () => {
 | 
				
			|||||||
    it('should add duplicate assets only once', async () => {
 | 
					    it('should add duplicate assets only once', async () => {
 | 
				
			||||||
      const asset = await utils.createAsset(user1.accessToken);
 | 
					      const asset = await utils.createAsset(user1.accessToken);
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/album/${user1Albums[0].id}/assets`)
 | 
					        .put(`/albums/${user1Albums[0].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ ids: [asset.id, asset.id] });
 | 
					        .send({ ids: [asset.id, asset.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -450,10 +450,10 @@ describe('/album', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('PATCH /album/:id', () => {
 | 
					  describe('PATCH /albums/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .patch(`/album/${uuidDto.notFound}`)
 | 
					        .patch(`/albums/${uuidDto.notFound}`)
 | 
				
			||||||
        .send({ albumName: 'New album name' });
 | 
					        .send({ albumName: 'New album name' });
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -464,7 +464,7 @@ describe('/album', () => {
 | 
				
			|||||||
        albumName: 'New album',
 | 
					        albumName: 'New album',
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .patch(`/album/${album.id}`)
 | 
					        .patch(`/albums/${album.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          albumName: 'New album name',
 | 
					          albumName: 'New album name',
 | 
				
			||||||
@ -481,7 +481,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not be able to update as a viewer', async () => {
 | 
					    it('should not be able to update as a viewer', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .patch(`/album/${user1Albums[3].id}`)
 | 
					        .patch(`/albums/${user1Albums[3].id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
				
			||||||
        .send({ albumName: 'New album name' });
 | 
					        .send({ albumName: 'New album name' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -491,7 +491,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not be able to update as an editor', async () => {
 | 
					    it('should not be able to update as an editor', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .patch(`/album/${user1Albums[0].id}`)
 | 
					        .patch(`/albums/${user1Albums[0].id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
				
			||||||
        .send({ albumName: 'New album name' });
 | 
					        .send({ albumName: 'New album name' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -500,10 +500,10 @@ describe('/album', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('DELETE /album/:id/assets', () => {
 | 
					  describe('DELETE /albums/:id/assets', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/album/${user1Albums[0].id}/assets`)
 | 
					        .delete(`/albums/${user1Albums[0].id}/assets`)
 | 
				
			||||||
        .send({ ids: [user1Asset1.id] });
 | 
					        .send({ ids: [user1Asset1.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
@ -512,7 +512,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not be able to remove foreign asset from own album', async () => {
 | 
					    it('should not be able to remove foreign asset from own album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/album/${user2Albums[0].id}/assets`)
 | 
					        .delete(`/albums/${user2Albums[0].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
				
			||||||
        .send({ ids: [user1Asset1.id] });
 | 
					        .send({ ids: [user1Asset1.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -528,7 +528,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not be able to remove foreign asset from foreign album', async () => {
 | 
					    it('should not be able to remove foreign asset from foreign album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/album/${user1Albums[0].id}/assets`)
 | 
					        .delete(`/albums/${user1Albums[0].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
				
			||||||
        .send({ ids: [user1Asset1.id] });
 | 
					        .send({ ids: [user1Asset1.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -544,7 +544,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should be able to remove own asset from own album', async () => {
 | 
					    it('should be able to remove own asset from own album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/album/${user1Albums[0].id}/assets`)
 | 
					        .delete(`/albums/${user1Albums[0].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ ids: [user1Asset1.id] });
 | 
					        .send({ ids: [user1Asset1.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -554,7 +554,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should be able to remove own asset from shared album', async () => {
 | 
					    it('should be able to remove own asset from shared album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/album/${user2Albums[0].id}/assets`)
 | 
					        .delete(`/albums/${user2Albums[0].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ ids: [user1Asset1.id] });
 | 
					        .send({ ids: [user1Asset1.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -564,7 +564,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not be able to remove assets from album as a viewer', async () => {
 | 
					    it('should not be able to remove assets from album as a viewer', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/album/${user1Albums[3].id}/assets`)
 | 
					        .delete(`/albums/${user1Albums[3].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
				
			||||||
        .send({ ids: [user1Asset1.id] });
 | 
					        .send({ ids: [user1Asset1.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -574,7 +574,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should remove duplicate assets only once', async () => {
 | 
					    it('should remove duplicate assets only once', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/album/${user1Albums[1].id}/assets`)
 | 
					        .delete(`/albums/${user1Albums[1].id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ ids: [user1Asset1.id, user1Asset1.id] });
 | 
					        .send({ ids: [user1Asset1.id, user1Asset1.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -596,7 +596,7 @@ describe('/album', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).put(`/album/${user1Albums[0].id}/users`).send({ sharedUserIds: [] });
 | 
					      const { status, body } = await request(app).put(`/albums/${user1Albums[0].id}/users`).send({ sharedUserIds: [] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -604,7 +604,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should be able to add user to own album', async () => {
 | 
					    it('should be able to add user to own album', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/album/${album.id}/users`)
 | 
					        .put(`/albums/${album.id}/users`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }] });
 | 
					        .send({ albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -618,7 +618,7 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not be able to share album with owner', async () => {
 | 
					    it('should not be able to share album with owner', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/album/${album.id}/users`)
 | 
					        .put(`/albums/${album.id}/users`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ albumUsers: [{ userId: user1.userId, role: AlbumUserRole.Editor }] });
 | 
					        .send({ albumUsers: [{ userId: user1.userId, role: AlbumUserRole.Editor }] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -628,12 +628,12 @@ describe('/album', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not be able to add existing user to shared album', async () => {
 | 
					    it('should not be able to add existing user to shared album', async () => {
 | 
				
			||||||
      await request(app)
 | 
					      await request(app)
 | 
				
			||||||
        .put(`/album/${album.id}/users`)
 | 
					        .put(`/albums/${album.id}/users`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }] });
 | 
					        .send({ albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/album/${album.id}/users`)
 | 
					        .put(`/albums/${album.id}/users`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }] });
 | 
					        .send({ albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -652,14 +652,16 @@ describe('/album', () => {
 | 
				
			|||||||
      expect(album.albumUsers[0].role).toEqual(AlbumUserRole.Viewer);
 | 
					      expect(album.albumUsers[0].role).toEqual(AlbumUserRole.Viewer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .put(`/album/${album.id}/user/${user2.userId}`)
 | 
					        .put(`/albums/${album.id}/user/${user2.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ role: AlbumUserRole.Editor });
 | 
					        .send({ role: AlbumUserRole.Editor });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // Get album to verify the role change
 | 
					      // Get album to verify the role change
 | 
				
			||||||
      const { body } = await request(app).get(`/album/${album.id}`).set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					      const { body } = await request(app)
 | 
				
			||||||
 | 
					        .get(`/albums/${album.id}`)
 | 
				
			||||||
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
      expect(body).toEqual(
 | 
					      expect(body).toEqual(
 | 
				
			||||||
        expect.objectContaining({
 | 
					        expect.objectContaining({
 | 
				
			||||||
          albumUsers: [expect.objectContaining({ role: AlbumUserRole.Editor })],
 | 
					          albumUsers: [expect.objectContaining({ role: AlbumUserRole.Editor })],
 | 
				
			||||||
@ -676,7 +678,7 @@ describe('/album', () => {
 | 
				
			|||||||
      expect(album.albumUsers[0].role).toEqual(AlbumUserRole.Viewer);
 | 
					      expect(album.albumUsers[0].role).toEqual(AlbumUserRole.Viewer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/album/${album.id}/user/${user2.userId}`)
 | 
					        .put(`/albums/${album.id}/user/${user2.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user2.accessToken}`)
 | 
				
			||||||
        .send({ role: AlbumUserRole.Editor });
 | 
					        .send({ role: AlbumUserRole.Editor });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,7 @@ import {
 | 
				
			|||||||
  LoginResponseDto,
 | 
					  LoginResponseDto,
 | 
				
			||||||
  SharedLinkType,
 | 
					  SharedLinkType,
 | 
				
			||||||
  getAssetInfo,
 | 
					  getAssetInfo,
 | 
				
			||||||
 | 
					  getMyUserInfo,
 | 
				
			||||||
  updateAssets,
 | 
					  updateAssets,
 | 
				
			||||||
} from '@immich/sdk';
 | 
					} from '@immich/sdk';
 | 
				
			||||||
import { exiftool } from 'exiftool-vendored';
 | 
					import { exiftool } from 'exiftool-vendored';
 | 
				
			||||||
@ -830,7 +831,7 @@ describe('/asset', () => {
 | 
				
			|||||||
      expect(body).toEqual({ id: expect.any(String), duplicate: false });
 | 
					      expect(body).toEqual({ id: expect.any(String), duplicate: false });
 | 
				
			||||||
      expect(status).toBe(201);
 | 
					      expect(status).toBe(201);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { body: user } = await request(app).get('/user/me').set('Authorization', `Bearer ${quotaUser.accessToken}`);
 | 
					      const user = await getMyUserInfo({ headers: asBearerAuth(quotaUser.accessToken) });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(user).toEqual(expect.objectContaining({ quotaUsageInBytes: 70 }));
 | 
					      expect(user).toEqual(expect.objectContaining({ quotaUsageInBytes: 70 }));
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@ import { deleteAssets, getAuditFiles, updateAsset, type LoginResponseDto } from
 | 
				
			|||||||
import { asBearerAuth, utils } from 'src/utils';
 | 
					import { asBearerAuth, utils } from 'src/utils';
 | 
				
			||||||
import { beforeAll, describe, expect, it } from 'vitest';
 | 
					import { beforeAll, describe, expect, it } from 'vitest';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('/audit', () => {
 | 
					describe('/audits', () => {
 | 
				
			||||||
  let admin: LoginResponseDto;
 | 
					  let admin: LoginResponseDto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  beforeAll(async () => {
 | 
					  beforeAll(async () => {
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest';
 | 
				
			|||||||
const scan = async (accessToken: string, id: string, dto: ScanLibraryDto = {}) =>
 | 
					const scan = async (accessToken: string, id: string, dto: ScanLibraryDto = {}) =>
 | 
				
			||||||
  scanLibrary({ id, scanLibraryDto: dto }, { headers: asBearerAuth(accessToken) });
 | 
					  scanLibrary({ id, scanLibraryDto: dto }, { headers: asBearerAuth(accessToken) });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('/library', () => {
 | 
					describe('/libraries', () => {
 | 
				
			||||||
  let admin: LoginResponseDto;
 | 
					  let admin: LoginResponseDto;
 | 
				
			||||||
  let user: LoginResponseDto;
 | 
					  let user: LoginResponseDto;
 | 
				
			||||||
  let library: LibraryResponseDto;
 | 
					  let library: LibraryResponseDto;
 | 
				
			||||||
@ -37,24 +37,24 @@ describe('/library', () => {
 | 
				
			|||||||
    utils.resetEvents();
 | 
					    utils.resetEvents();
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /library', () => {
 | 
					  describe('GET /libraries', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/library');
 | 
					      const { status, body } = await request(app).get('/libraries');
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /library', () => {
 | 
					  describe('POST /libraries', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post('/library').send({});
 | 
					      const { status, body } = await request(app).post('/libraries').send({});
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should require admin authentication', async () => {
 | 
					    it('should require admin authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/library')
 | 
					        .post('/libraries')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user.accessToken}`)
 | 
				
			||||||
        .send({ ownerId: admin.userId });
 | 
					        .send({ ownerId: admin.userId });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -64,7 +64,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should create an external library with defaults', async () => {
 | 
					    it('should create an external library with defaults', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/library')
 | 
					        .post('/libraries')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ ownerId: admin.userId });
 | 
					        .send({ ownerId: admin.userId });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -83,7 +83,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should create an external library with options', async () => {
 | 
					    it('should create an external library with options', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/library')
 | 
					        .post('/libraries')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          ownerId: admin.userId,
 | 
					          ownerId: admin.userId,
 | 
				
			||||||
@ -103,7 +103,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not create an external library with duplicate import paths', async () => {
 | 
					    it('should not create an external library with duplicate import paths', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/library')
 | 
					        .post('/libraries')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          ownerId: admin.userId,
 | 
					          ownerId: admin.userId,
 | 
				
			||||||
@ -118,7 +118,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not create an external library with duplicate exclusion patterns', async () => {
 | 
					    it('should not create an external library with duplicate exclusion patterns', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/library')
 | 
					        .post('/libraries')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          ownerId: admin.userId,
 | 
					          ownerId: admin.userId,
 | 
				
			||||||
@ -132,16 +132,16 @@ describe('/library', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('PUT /library/:id', () => {
 | 
					  describe('PUT /libraries/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).put(`/library/${uuidDto.notFound}`).send({});
 | 
					      const { status, body } = await request(app).put(`/libraries/${uuidDto.notFound}`).send({});
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should change the library name', async () => {
 | 
					    it('should change the library name', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/library/${library.id}`)
 | 
					        .put(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ name: 'New Library Name' });
 | 
					        .send({ name: 'New Library Name' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -155,7 +155,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not set an empty name', async () => {
 | 
					    it('should not set an empty name', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/library/${library.id}`)
 | 
					        .put(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ name: '' });
 | 
					        .send({ name: '' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -165,7 +165,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should change the import paths', async () => {
 | 
					    it('should change the import paths', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/library/${library.id}`)
 | 
					        .put(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ importPaths: [testAssetDirInternal] });
 | 
					        .send({ importPaths: [testAssetDirInternal] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -179,7 +179,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should reject an empty import path', async () => {
 | 
					    it('should reject an empty import path', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/library/${library.id}`)
 | 
					        .put(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ importPaths: [''] });
 | 
					        .send({ importPaths: [''] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -189,7 +189,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should reject duplicate import paths', async () => {
 | 
					    it('should reject duplicate import paths', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/library/${library.id}`)
 | 
					        .put(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ importPaths: ['/path', '/path'] });
 | 
					        .send({ importPaths: ['/path', '/path'] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -199,7 +199,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should change the exclusion pattern', async () => {
 | 
					    it('should change the exclusion pattern', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/library/${library.id}`)
 | 
					        .put(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ exclusionPatterns: ['**/Raw/**'] });
 | 
					        .send({ exclusionPatterns: ['**/Raw/**'] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -213,7 +213,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should reject duplicate exclusion patterns', async () => {
 | 
					    it('should reject duplicate exclusion patterns', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/library/${library.id}`)
 | 
					        .put(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ exclusionPatterns: ['**/*.jpg', '**/*.jpg'] });
 | 
					        .send({ exclusionPatterns: ['**/*.jpg', '**/*.jpg'] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -223,7 +223,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should reject an empty exclusion pattern', async () => {
 | 
					    it('should reject an empty exclusion pattern', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/library/${library.id}`)
 | 
					        .put(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ exclusionPatterns: [''] });
 | 
					        .send({ exclusionPatterns: [''] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -232,9 +232,9 @@ describe('/library', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /library/:id', () => {
 | 
					  describe('GET /libraries/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get(`/library/${uuidDto.notFound}`);
 | 
					      const { status, body } = await request(app).get(`/libraries/${uuidDto.notFound}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -242,7 +242,7 @@ describe('/library', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should require admin access', async () => {
 | 
					    it('should require admin access', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/library/${uuidDto.notFound}`)
 | 
					        .get(`/libraries/${uuidDto.notFound}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(403);
 | 
					      expect(status).toBe(403);
 | 
				
			||||||
      expect(body).toEqual(errorDto.forbidden);
 | 
					      expect(body).toEqual(errorDto.forbidden);
 | 
				
			||||||
@ -252,7 +252,7 @@ describe('/library', () => {
 | 
				
			|||||||
      const library = await utils.createLibrary(admin.accessToken, { ownerId: admin.userId });
 | 
					      const library = await utils.createLibrary(admin.accessToken, { ownerId: admin.userId });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/library/${library.id}`)
 | 
					        .get(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -269,18 +269,18 @@ describe('/library', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /library/:id/statistics', () => {
 | 
					  describe('GET /libraries/:id/statistics', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get(`/library/${uuidDto.notFound}/statistics`);
 | 
					      const { status, body } = await request(app).get(`/libraries/${uuidDto.notFound}/statistics`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /library/:id/scan', () => {
 | 
					  describe('POST /libraries/:id/scan', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post(`/library/${uuidDto.notFound}/scan`).send({});
 | 
					      const { status, body } = await request(app).post(`/libraries/${uuidDto.notFound}/scan`).send({});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -496,9 +496,9 @@ describe('/library', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /library/:id/removeOffline', () => {
 | 
					  describe('POST /libraries/:id/removeOffline', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post(`/library/${uuidDto.notFound}/removeOffline`).send({});
 | 
					      const { status, body } = await request(app).post(`/libraries/${uuidDto.notFound}/removeOffline`).send({});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -532,7 +532,7 @@ describe('/library', () => {
 | 
				
			|||||||
      expect(offlineAssets.count).toBe(1);
 | 
					      expect(offlineAssets.count).toBe(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .post(`/library/${library.id}/removeOffline`)
 | 
					        .post(`/libraries/${library.id}/removeOffline`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send();
 | 
					        .send();
 | 
				
			||||||
      expect(status).toBe(204);
 | 
					      expect(status).toBe(204);
 | 
				
			||||||
@ -557,7 +557,7 @@ describe('/library', () => {
 | 
				
			|||||||
      expect(assetsBefore.count).toBeGreaterThan(1);
 | 
					      expect(assetsBefore.count).toBeGreaterThan(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .post(`/library/${library.id}/removeOffline`)
 | 
					        .post(`/libraries/${library.id}/removeOffline`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send();
 | 
					        .send();
 | 
				
			||||||
      expect(status).toBe(204);
 | 
					      expect(status).toBe(204);
 | 
				
			||||||
@ -569,9 +569,9 @@ describe('/library', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /library/:id/validate', () => {
 | 
					  describe('POST /libraries/:id/validate', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post(`/library/${uuidDto.notFound}/validate`).send({});
 | 
					      const { status, body } = await request(app).post(`/libraries/${uuidDto.notFound}/validate`).send({});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -617,9 +617,9 @@ describe('/library', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('DELETE /library/:id', () => {
 | 
					  describe('DELETE /libraries/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).delete(`/library/${uuidDto.notFound}`);
 | 
					      const { status, body } = await request(app).delete(`/libraries/${uuidDto.notFound}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -629,7 +629,7 @@ describe('/library', () => {
 | 
				
			|||||||
      const library = await utils.createLibrary(admin.accessToken, { ownerId: admin.userId });
 | 
					      const library = await utils.createLibrary(admin.accessToken, { ownerId: admin.userId });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/library/${library.id}`)
 | 
					        .delete(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(204);
 | 
					      expect(status).toBe(204);
 | 
				
			||||||
@ -655,7 +655,7 @@ describe('/library', () => {
 | 
				
			|||||||
      await utils.waitForWebsocketEvent({ event: 'assetUpload', total: 2 });
 | 
					      await utils.waitForWebsocketEvent({ event: 'assetUpload', total: 2 });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/library/${library.id}`)
 | 
					        .delete(`/libraries/${library.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(204);
 | 
					      expect(status).toBe(204);
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ import { app, asBearerAuth, utils } from 'src/utils';
 | 
				
			|||||||
import request from 'supertest';
 | 
					import request from 'supertest';
 | 
				
			||||||
import { beforeAll, describe, expect, it } from 'vitest';
 | 
					import { beforeAll, describe, expect, it } from 'vitest';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('/partner', () => {
 | 
					describe('/partners', () => {
 | 
				
			||||||
  let admin: LoginResponseDto;
 | 
					  let admin: LoginResponseDto;
 | 
				
			||||||
  let user1: LoginResponseDto;
 | 
					  let user1: LoginResponseDto;
 | 
				
			||||||
  let user2: LoginResponseDto;
 | 
					  let user2: LoginResponseDto;
 | 
				
			||||||
@ -28,9 +28,9 @@ describe('/partner', () => {
 | 
				
			|||||||
    ]);
 | 
					    ]);
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /partner', () => {
 | 
					  describe('GET /partners', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/partner');
 | 
					      const { status, body } = await request(app).get('/partners');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -38,7 +38,7 @@ describe('/partner', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should get all partners shared by user', async () => {
 | 
					    it('should get all partners shared by user', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/partner')
 | 
					        .get('/partners')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .query({ direction: 'shared-by' });
 | 
					        .query({ direction: 'shared-by' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -48,7 +48,7 @@ describe('/partner', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should get all partners that share with user', async () => {
 | 
					    it('should get all partners that share with user', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/partner')
 | 
					        .get('/partners')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .query({ direction: 'shared-with' });
 | 
					        .query({ direction: 'shared-with' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -57,9 +57,9 @@ describe('/partner', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /partner/:id', () => {
 | 
					  describe('POST /partners/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post(`/partner/${user3.userId}`);
 | 
					      const { status, body } = await request(app).post(`/partners/${user3.userId}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -67,7 +67,7 @@ describe('/partner', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should share with new partner', async () => {
 | 
					    it('should share with new partner', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post(`/partner/${user3.userId}`)
 | 
					        .post(`/partners/${user3.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(201);
 | 
					      expect(status).toBe(201);
 | 
				
			||||||
@ -76,7 +76,7 @@ describe('/partner', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not share with new partner if already sharing with this partner', async () => {
 | 
					    it('should not share with new partner if already sharing with this partner', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post(`/partner/${user2.userId}`)
 | 
					        .post(`/partners/${user2.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
@ -84,9 +84,9 @@ describe('/partner', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('PUT /partner/:id', () => {
 | 
					  describe('PUT /partners/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).put(`/partner/${user2.userId}`);
 | 
					      const { status, body } = await request(app).put(`/partners/${user2.userId}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -94,7 +94,7 @@ describe('/partner', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should update partner', async () => {
 | 
					    it('should update partner', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/partner/${user2.userId}`)
 | 
					        .put(`/partners/${user2.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ inTimeline: false });
 | 
					        .send({ inTimeline: false });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -103,9 +103,9 @@ describe('/partner', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('DELETE /partner/:id', () => {
 | 
					  describe('DELETE /partners/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).delete(`/partner/${user3.userId}`);
 | 
					      const { status, body } = await request(app).delete(`/partners/${user3.userId}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -113,7 +113,7 @@ describe('/partner', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should delete partner', async () => {
 | 
					    it('should delete partner', async () => {
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .delete(`/partner/${user3.userId}`)
 | 
					        .delete(`/partners/${user3.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -121,7 +121,7 @@ describe('/partner', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should throw a bad request if partner not found', async () => {
 | 
					    it('should throw a bad request if partner not found', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/partner/${user3.userId}`)
 | 
					        .delete(`/partners/${user3.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
 | 
				
			|||||||
@ -12,7 +12,7 @@ const invalidBirthday = [
 | 
				
			|||||||
  { birthDate: new Date(9999, 0, 0).toISOString(), response: ['Birth date cannot be in the future'] },
 | 
					  { birthDate: new Date(9999, 0, 0).toISOString(), response: ['Birth date cannot be in the future'] },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('/person', () => {
 | 
					describe('/people', () => {
 | 
				
			||||||
  let admin: LoginResponseDto;
 | 
					  let admin: LoginResponseDto;
 | 
				
			||||||
  let visiblePerson: PersonResponseDto;
 | 
					  let visiblePerson: PersonResponseDto;
 | 
				
			||||||
  let hiddenPerson: PersonResponseDto;
 | 
					  let hiddenPerson: PersonResponseDto;
 | 
				
			||||||
@ -47,11 +47,11 @@ describe('/person', () => {
 | 
				
			|||||||
    ]);
 | 
					    ]);
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /person', () => {
 | 
					  describe('GET /people', () => {
 | 
				
			||||||
    beforeEach(async () => {});
 | 
					    beforeEach(async () => {});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/person');
 | 
					      const { status, body } = await request(app).get('/people');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -59,7 +59,7 @@ describe('/person', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return all people (including hidden)', async () => {
 | 
					    it('should return all people (including hidden)', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/person')
 | 
					        .get('/people')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .query({ withHidden: true });
 | 
					        .query({ withHidden: true });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -76,7 +76,7 @@ describe('/person', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should return only visible people', async () => {
 | 
					    it('should return only visible people', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/person').set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					      const { status, body } = await request(app).get('/people').set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toEqual({
 | 
					      expect(body).toEqual({
 | 
				
			||||||
@ -90,9 +90,9 @@ describe('/person', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /person/:id', () => {
 | 
					  describe('GET /people/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get(`/person/${uuidDto.notFound}`);
 | 
					      const { status, body } = await request(app).get(`/people/${uuidDto.notFound}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -100,7 +100,7 @@ describe('/person', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should throw error if person with id does not exist', async () => {
 | 
					    it('should throw error if person with id does not exist', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/person/${uuidDto.notFound}`)
 | 
					        .get(`/people/${uuidDto.notFound}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
@ -109,7 +109,7 @@ describe('/person', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return person information', async () => {
 | 
					    it('should return person information', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/person/${visiblePerson.id}`)
 | 
					        .get(`/people/${visiblePerson.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -117,9 +117,9 @@ describe('/person', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /person/:id/statistics', () => {
 | 
					  describe('GET /people/:id/statistics', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get(`/person/${multipleAssetsPerson.id}/statistics`);
 | 
					      const { status, body } = await request(app).get(`/people/${multipleAssetsPerson.id}/statistics`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -127,7 +127,7 @@ describe('/person', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should throw error if person with id does not exist', async () => {
 | 
					    it('should throw error if person with id does not exist', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/person/${uuidDto.notFound}/statistics`)
 | 
					        .get(`/people/${uuidDto.notFound}/statistics`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
@ -136,7 +136,7 @@ describe('/person', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return the correct number of assets', async () => {
 | 
					    it('should return the correct number of assets', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/person/${multipleAssetsPerson.id}/statistics`)
 | 
					        .get(`/people/${multipleAssetsPerson.id}/statistics`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -144,9 +144,9 @@ describe('/person', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /person', () => {
 | 
					  describe('POST /people', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post(`/person`);
 | 
					      const { status, body } = await request(app).post(`/people`);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -154,7 +154,7 @@ describe('/person', () => {
 | 
				
			|||||||
    for (const { birthDate, response } of invalidBirthday) {
 | 
					    for (const { birthDate, response } of invalidBirthday) {
 | 
				
			||||||
      it(`should not accept an invalid birth date [${birthDate}]`, async () => {
 | 
					      it(`should not accept an invalid birth date [${birthDate}]`, async () => {
 | 
				
			||||||
        const { status, body } = await request(app)
 | 
					        const { status, body } = await request(app)
 | 
				
			||||||
          .post(`/person`)
 | 
					          .post(`/people`)
 | 
				
			||||||
          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
          .send({ birthDate });
 | 
					          .send({ birthDate });
 | 
				
			||||||
        expect(status).toBe(400);
 | 
					        expect(status).toBe(400);
 | 
				
			||||||
@ -164,7 +164,7 @@ describe('/person', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should create a person', async () => {
 | 
					    it('should create a person', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post(`/person`)
 | 
					        .post(`/people`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          name: 'New Person',
 | 
					          name: 'New Person',
 | 
				
			||||||
@ -179,9 +179,9 @@ describe('/person', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('PUT /person/:id', () => {
 | 
					  describe('PUT /people/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).put(`/person/${uuidDto.notFound}`);
 | 
					      const { status, body } = await request(app).put(`/people/${uuidDto.notFound}`);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -193,7 +193,7 @@ describe('/person', () => {
 | 
				
			|||||||
    ]) {
 | 
					    ]) {
 | 
				
			||||||
      it(`should not allow null ${key}`, async () => {
 | 
					      it(`should not allow null ${key}`, async () => {
 | 
				
			||||||
        const { status, body } = await request(app)
 | 
					        const { status, body } = await request(app)
 | 
				
			||||||
          .put(`/person/${visiblePerson.id}`)
 | 
					          .put(`/people/${visiblePerson.id}`)
 | 
				
			||||||
          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
          .send({ [key]: null });
 | 
					          .send({ [key]: null });
 | 
				
			||||||
        expect(status).toBe(400);
 | 
					        expect(status).toBe(400);
 | 
				
			||||||
@ -204,7 +204,7 @@ describe('/person', () => {
 | 
				
			|||||||
    for (const { birthDate, response } of invalidBirthday) {
 | 
					    for (const { birthDate, response } of invalidBirthday) {
 | 
				
			||||||
      it(`should not accept an invalid birth date [${birthDate}]`, async () => {
 | 
					      it(`should not accept an invalid birth date [${birthDate}]`, async () => {
 | 
				
			||||||
        const { status, body } = await request(app)
 | 
					        const { status, body } = await request(app)
 | 
				
			||||||
          .put(`/person/${visiblePerson.id}`)
 | 
					          .put(`/people/${visiblePerson.id}`)
 | 
				
			||||||
          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
          .send({ birthDate });
 | 
					          .send({ birthDate });
 | 
				
			||||||
        expect(status).toBe(400);
 | 
					        expect(status).toBe(400);
 | 
				
			||||||
@ -214,7 +214,7 @@ describe('/person', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should update a date of birth', async () => {
 | 
					    it('should update a date of birth', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/person/${visiblePerson.id}`)
 | 
					        .put(`/people/${visiblePerson.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ birthDate: '1990-01-01T05:00:00.000Z' });
 | 
					        .send({ birthDate: '1990-01-01T05:00:00.000Z' });
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -223,7 +223,7 @@ describe('/person', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should clear a date of birth', async () => {
 | 
					    it('should clear a date of birth', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/person/${visiblePerson.id}`)
 | 
					        .put(`/people/${visiblePerson.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
        .send({ birthDate: null });
 | 
					        .send({ birthDate: null });
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ import { app, asBearerAuth, shareUrl, utils } from 'src/utils';
 | 
				
			|||||||
import request from 'supertest';
 | 
					import request from 'supertest';
 | 
				
			||||||
import { beforeAll, describe, expect, it } from 'vitest';
 | 
					import { beforeAll, describe, expect, it } from 'vitest';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('/shared-link', () => {
 | 
					describe('/shared-links', () => {
 | 
				
			||||||
  let admin: LoginResponseDto;
 | 
					  let admin: LoginResponseDto;
 | 
				
			||||||
  let asset1: AssetFileUploadResponseDto;
 | 
					  let asset1: AssetFileUploadResponseDto;
 | 
				
			||||||
  let asset2: AssetFileUploadResponseDto;
 | 
					  let asset2: AssetFileUploadResponseDto;
 | 
				
			||||||
@ -114,9 +114,9 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /shared-link', () => {
 | 
					  describe('GET /shared-links', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/shared-link');
 | 
					      const { status, body } = await request(app).get('/shared-links');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -124,7 +124,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should get all shared links created by user', async () => {
 | 
					    it('should get all shared links created by user', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/shared-link')
 | 
					        .get('/shared-links')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -142,7 +142,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not get shared links created by other users', async () => {
 | 
					    it('should not get shared links created by other users', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/shared-link')
 | 
					        .get('/shared-links')
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -150,15 +150,15 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /shared-link/me', () => {
 | 
					  describe('GET /shared-links/me', () => {
 | 
				
			||||||
    it('should not require admin authentication', async () => {
 | 
					    it('should not require admin authentication', async () => {
 | 
				
			||||||
      const { status } = await request(app).get('/shared-link/me').set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					      const { status } = await request(app).get('/shared-links/me').set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(403);
 | 
					      expect(status).toBe(403);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should get data for correct shared link', async () => {
 | 
					    it('should get data for correct shared link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/shared-link/me').query({ key: linkWithAlbum.key });
 | 
					      const { status, body } = await request(app).get('/shared-links/me').query({ key: linkWithAlbum.key });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toEqual(
 | 
					      expect(body).toEqual(
 | 
				
			||||||
@ -172,7 +172,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should return unauthorized for incorrect shared link', async () => {
 | 
					    it('should return unauthorized for incorrect shared link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/shared-link/me')
 | 
					        .get('/shared-links/me')
 | 
				
			||||||
        .query({ key: linkWithAlbum.key + 'foo' });
 | 
					        .query({ key: linkWithAlbum.key + 'foo' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
@ -180,14 +180,14 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should return unauthorized if target has been soft deleted', async () => {
 | 
					    it('should return unauthorized if target has been soft deleted', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/shared-link/me').query({ key: linkWithDeletedAlbum.key });
 | 
					      const { status, body } = await request(app).get('/shared-links/me').query({ key: linkWithDeletedAlbum.key });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.invalidShareKey);
 | 
					      expect(body).toEqual(errorDto.invalidShareKey);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should return unauthorized for password protected link', async () => {
 | 
					    it('should return unauthorized for password protected link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/shared-link/me').query({ key: linkWithPassword.key });
 | 
					      const { status, body } = await request(app).get('/shared-links/me').query({ key: linkWithPassword.key });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.invalidSharePassword);
 | 
					      expect(body).toEqual(errorDto.invalidSharePassword);
 | 
				
			||||||
@ -195,7 +195,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should get data for correct password protected link', async () => {
 | 
					    it('should get data for correct password protected link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get('/shared-link/me')
 | 
					        .get('/shared-links/me')
 | 
				
			||||||
        .query({ key: linkWithPassword.key, password: 'foo' });
 | 
					        .query({ key: linkWithPassword.key, password: 'foo' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -209,7 +209,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should return metadata for album shared link', async () => {
 | 
					    it('should return metadata for album shared link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/shared-link/me').query({ key: linkWithMetadata.key });
 | 
					      const { status, body } = await request(app).get('/shared-links/me').query({ key: linkWithMetadata.key });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body.assets).toHaveLength(1);
 | 
					      expect(body.assets).toHaveLength(1);
 | 
				
			||||||
@ -225,7 +225,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should not return metadata for album shared link without metadata', async () => {
 | 
					    it('should not return metadata for album shared link without metadata', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/shared-link/me').query({ key: linkWithoutMetadata.key });
 | 
					      const { status, body } = await request(app).get('/shared-links/me').query({ key: linkWithoutMetadata.key });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body.assets).toHaveLength(1);
 | 
					      expect(body.assets).toHaveLength(1);
 | 
				
			||||||
@ -239,9 +239,9 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /shared-link/:id', () => {
 | 
					  describe('GET /shared-links/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get(`/shared-link/${linkWithAlbum.id}`);
 | 
					      const { status, body } = await request(app).get(`/shared-links/${linkWithAlbum.id}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -249,7 +249,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should get shared link by id', async () => {
 | 
					    it('should get shared link by id', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/shared-link/${linkWithAlbum.id}`)
 | 
					        .get(`/shared-links/${linkWithAlbum.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -264,7 +264,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not get shared link by id if user has not created the link or it does not exist', async () => {
 | 
					    it('should not get shared link by id if user has not created the link or it does not exist', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/shared-link/${linkWithAlbum.id}`)
 | 
					        .get(`/shared-links/${linkWithAlbum.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
@ -272,10 +272,10 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /shared-link', () => {
 | 
					  describe('POST /shared-links', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/shared-link')
 | 
					        .post('/shared-links')
 | 
				
			||||||
        .send({ type: SharedLinkType.Album, albumId: uuidDto.notFound });
 | 
					        .send({ type: SharedLinkType.Album, albumId: uuidDto.notFound });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
@ -284,7 +284,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should require a type and the correspondent asset/album id', async () => {
 | 
					    it('should require a type and the correspondent asset/album id', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/shared-link')
 | 
					        .post('/shared-links')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
@ -293,7 +293,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should require an asset/album id', async () => {
 | 
					    it('should require an asset/album id', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/shared-link')
 | 
					        .post('/shared-links')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ type: SharedLinkType.Album });
 | 
					        .send({ type: SharedLinkType.Album });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -303,7 +303,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should require a valid asset id', async () => {
 | 
					    it('should require a valid asset id', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/shared-link')
 | 
					        .post('/shared-links')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ type: SharedLinkType.Individual, assetId: uuidDto.notFound });
 | 
					        .send({ type: SharedLinkType.Individual, assetId: uuidDto.notFound });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -313,7 +313,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should create a shared link', async () => {
 | 
					    it('should create a shared link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post('/shared-link')
 | 
					        .post('/shared-links')
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ type: SharedLinkType.Album, albumId: album.id });
 | 
					        .send({ type: SharedLinkType.Album, albumId: album.id });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -327,10 +327,10 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('PATCH /shared-link/:id', () => {
 | 
					  describe('PATCH /shared-links/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .patch(`/shared-link/${linkWithAlbum.id}`)
 | 
					        .patch(`/shared-links/${linkWithAlbum.id}`)
 | 
				
			||||||
        .send({ description: 'foo' });
 | 
					        .send({ description: 'foo' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
@ -339,7 +339,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should fail if invalid link', async () => {
 | 
					    it('should fail if invalid link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .patch(`/shared-link/${uuidDto.notFound}`)
 | 
					        .patch(`/shared-links/${uuidDto.notFound}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ description: 'foo' });
 | 
					        .send({ description: 'foo' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -349,7 +349,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should update shared link', async () => {
 | 
					    it('should update shared link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .patch(`/shared-link/${linkWithAlbum.id}`)
 | 
					        .patch(`/shared-links/${linkWithAlbum.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ description: 'foo' });
 | 
					        .send({ description: 'foo' });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -364,10 +364,10 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('PUT /shared-link/:id/assets', () => {
 | 
					  describe('PUT /shared-links/:id/assets', () => {
 | 
				
			||||||
    it('should not add assets to shared link (album)', async () => {
 | 
					    it('should not add assets to shared link (album)', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/shared-link/${linkWithAlbum.id}/assets`)
 | 
					        .put(`/shared-links/${linkWithAlbum.id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ assetIds: [asset2.id] });
 | 
					        .send({ assetIds: [asset2.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -377,7 +377,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should add an assets to a shared link (individual)', async () => {
 | 
					    it('should add an assets to a shared link (individual)', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/shared-link/${linkWithAssets.id}/assets`)
 | 
					        .put(`/shared-links/${linkWithAssets.id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ assetIds: [asset2.id] });
 | 
					        .send({ assetIds: [asset2.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -386,10 +386,10 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('DELETE /shared-link/:id/assets', () => {
 | 
					  describe('DELETE /shared-links/:id/assets', () => {
 | 
				
			||||||
    it('should not remove assets from a shared link (album)', async () => {
 | 
					    it('should not remove assets from a shared link (album)', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/shared-link/${linkWithAlbum.id}/assets`)
 | 
					        .delete(`/shared-links/${linkWithAlbum.id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ assetIds: [asset2.id] });
 | 
					        .send({ assetIds: [asset2.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -399,7 +399,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should remove assets from a shared link (individual)', async () => {
 | 
					    it('should remove assets from a shared link (individual)', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/shared-link/${linkWithAssets.id}/assets`)
 | 
					        .delete(`/shared-links/${linkWithAssets.id}/assets`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`)
 | 
				
			||||||
        .send({ assetIds: [asset2.id] });
 | 
					        .send({ assetIds: [asset2.id] });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -408,9 +408,9 @@ describe('/shared-link', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('DELETE /shared-link/:id', () => {
 | 
					  describe('DELETE /shared-links/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).delete(`/shared-link/${linkWithAlbum.id}`);
 | 
					      const { status, body } = await request(app).delete(`/shared-links/${linkWithAlbum.id}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
@ -418,7 +418,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should fail if invalid link', async () => {
 | 
					    it('should fail if invalid link', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/shared-link/${uuidDto.notFound}`)
 | 
					        .delete(`/shared-links/${uuidDto.notFound}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(400);
 | 
					      expect(status).toBe(400);
 | 
				
			||||||
@ -427,7 +427,7 @@ describe('/shared-link', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should delete a shared link', async () => {
 | 
					    it('should delete a shared link', async () => {
 | 
				
			||||||
      const { status } = await request(app)
 | 
					      const { status } = await request(app)
 | 
				
			||||||
        .delete(`/shared-link/${linkWithAlbum.id}`)
 | 
					        .delete(`/shared-links/${linkWithAlbum.id}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${user1.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ import { app, asBearerAuth, utils } from 'src/utils';
 | 
				
			|||||||
import request from 'supertest';
 | 
					import request from 'supertest';
 | 
				
			||||||
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
 | 
					import { afterAll, beforeAll, describe, expect, it } from 'vitest';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
describe('/user', () => {
 | 
					describe('/users', () => {
 | 
				
			||||||
  let websocket: Socket;
 | 
					  let websocket: Socket;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let admin: LoginResponseDto;
 | 
					  let admin: LoginResponseDto;
 | 
				
			||||||
@ -34,15 +34,15 @@ describe('/user', () => {
 | 
				
			|||||||
    utils.disconnectWebsocket(websocket);
 | 
					    utils.disconnectWebsocket(websocket);
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /user', () => {
 | 
					  describe('GET /users', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/user');
 | 
					      const { status, body } = await request(app).get('/users');
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should get users', async () => {
 | 
					    it('should get users', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get('/user').set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					      const { status, body } = await request(app).get('/users').set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toEqual(200);
 | 
					      expect(status).toEqual(200);
 | 
				
			||||||
      expect(body).toHaveLength(5);
 | 
					      expect(body).toHaveLength(5);
 | 
				
			||||||
      expect(body).toEqual(
 | 
					      expect(body).toEqual(
 | 
				
			||||||
@ -58,7 +58,7 @@ describe('/user', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should hide deleted users', async () => {
 | 
					    it('should hide deleted users', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/user`)
 | 
					        .get(`/users`)
 | 
				
			||||||
        .query({ isAll: true })
 | 
					        .query({ isAll: true })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -75,7 +75,7 @@ describe('/user', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should include deleted users', async () => {
 | 
					    it('should include deleted users', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/user`)
 | 
					        .get(`/users`)
 | 
				
			||||||
        .query({ isAll: false })
 | 
					        .query({ isAll: false })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -93,15 +93,15 @@ describe('/user', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /user/info/:id', () => {
 | 
					  describe('GET /users/info/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status } = await request(app).get(`/user/info/${admin.userId}`);
 | 
					      const { status } = await request(app).get(`/users/info/${admin.userId}`);
 | 
				
			||||||
      expect(status).toEqual(401);
 | 
					      expect(status).toEqual(401);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should get the user info', async () => {
 | 
					    it('should get the user info', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .get(`/user/info/${admin.userId}`)
 | 
					        .get(`/users/info/${admin.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toMatchObject({
 | 
					      expect(body).toMatchObject({
 | 
				
			||||||
@ -111,15 +111,15 @@ describe('/user', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('GET /user/me', () => {
 | 
					  describe('GET /users/me', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get(`/user/me`);
 | 
					      const { status, body } = await request(app).get(`/users/me`);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should get my info', async () => {
 | 
					    it('should get my info', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).get(`/user/me`).set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					      const { status, body } = await request(app).get(`/users/me`).set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
      expect(body).toMatchObject({
 | 
					      expect(body).toMatchObject({
 | 
				
			||||||
        id: admin.userId,
 | 
					        id: admin.userId,
 | 
				
			||||||
@ -128,9 +128,9 @@ describe('/user', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('POST /user', () => {
 | 
					  describe('POST /users', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).post(`/user`).send(createUserDto.user1);
 | 
					      const { status, body } = await request(app).post(`/users`).send(createUserDto.user1);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -138,7 +138,7 @@ describe('/user', () => {
 | 
				
			|||||||
    for (const key of Object.keys(createUserDto.user1)) {
 | 
					    for (const key of Object.keys(createUserDto.user1)) {
 | 
				
			||||||
      it(`should not allow null ${key}`, async () => {
 | 
					      it(`should not allow null ${key}`, async () => {
 | 
				
			||||||
        const { status, body } = await request(app)
 | 
					        const { status, body } = await request(app)
 | 
				
			||||||
          .post(`/user`)
 | 
					          .post(`/users`)
 | 
				
			||||||
          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
          .send({ ...createUserDto.user1, [key]: null });
 | 
					          .send({ ...createUserDto.user1, [key]: null });
 | 
				
			||||||
        expect(status).toBe(400);
 | 
					        expect(status).toBe(400);
 | 
				
			||||||
@ -148,7 +148,7 @@ describe('/user', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should ignore `isAdmin`', async () => {
 | 
					    it('should ignore `isAdmin`', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post(`/user`)
 | 
					        .post(`/users`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          isAdmin: true,
 | 
					          isAdmin: true,
 | 
				
			||||||
          email: 'user5@immich.cloud',
 | 
					          email: 'user5@immich.cloud',
 | 
				
			||||||
@ -166,7 +166,7 @@ describe('/user', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should create a user without memories enabled', async () => {
 | 
					    it('should create a user without memories enabled', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .post(`/user`)
 | 
					        .post(`/users`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          email: 'no-memories@immich.cloud',
 | 
					          email: 'no-memories@immich.cloud',
 | 
				
			||||||
          password: 'Password123',
 | 
					          password: 'Password123',
 | 
				
			||||||
@ -182,16 +182,16 @@ describe('/user', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('DELETE /user/:id', () => {
 | 
					  describe('DELETE /users/:id', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).delete(`/user/${userToDelete.userId}`);
 | 
					      const { status, body } = await request(app).delete(`/users/${userToDelete.userId}`);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it('should delete user', async () => {
 | 
					    it('should delete user', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/user/${userToDelete.userId}`)
 | 
					        .delete(`/users/${userToDelete.userId}`)
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      expect(status).toBe(200);
 | 
					      expect(status).toBe(200);
 | 
				
			||||||
@ -204,7 +204,7 @@ describe('/user', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should hard delete user', async () => {
 | 
					    it('should hard delete user', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .delete(`/user/${userToHardDelete.userId}`)
 | 
					        .delete(`/users/${userToHardDelete.userId}`)
 | 
				
			||||||
        .send({ force: true })
 | 
					        .send({ force: true })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -219,9 +219,9 @@ describe('/user', () => {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe('PUT /user', () => {
 | 
					  describe('PUT /users', () => {
 | 
				
			||||||
    it('should require authentication', async () => {
 | 
					    it('should require authentication', async () => {
 | 
				
			||||||
      const { status, body } = await request(app).put(`/user`);
 | 
					      const { status, body } = await request(app).put(`/users`);
 | 
				
			||||||
      expect(status).toBe(401);
 | 
					      expect(status).toBe(401);
 | 
				
			||||||
      expect(body).toEqual(errorDto.unauthorized);
 | 
					      expect(body).toEqual(errorDto.unauthorized);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -229,7 +229,7 @@ describe('/user', () => {
 | 
				
			|||||||
    for (const key of Object.keys(userDto.admin)) {
 | 
					    for (const key of Object.keys(userDto.admin)) {
 | 
				
			||||||
      it(`should not allow null ${key}`, async () => {
 | 
					      it(`should not allow null ${key}`, async () => {
 | 
				
			||||||
        const { status, body } = await request(app)
 | 
					        const { status, body } = await request(app)
 | 
				
			||||||
          .put(`/user`)
 | 
					          .put(`/users`)
 | 
				
			||||||
          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
					          .set('Authorization', `Bearer ${admin.accessToken}`)
 | 
				
			||||||
          .send({ ...userDto.admin, [key]: null });
 | 
					          .send({ ...userDto.admin, [key]: null });
 | 
				
			||||||
        expect(status).toBe(400);
 | 
					        expect(status).toBe(400);
 | 
				
			||||||
@ -239,7 +239,7 @@ describe('/user', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('should not allow a non-admin to become an admin', async () => {
 | 
					    it('should not allow a non-admin to become an admin', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/user`)
 | 
					        .put(`/users`)
 | 
				
			||||||
        .send({ isAdmin: true, id: nonAdmin.userId })
 | 
					        .send({ isAdmin: true, id: nonAdmin.userId })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -249,7 +249,7 @@ describe('/user', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    it('ignores updates to profileImagePath', async () => {
 | 
					    it('ignores updates to profileImagePath', async () => {
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/user`)
 | 
					        .put(`/users`)
 | 
				
			||||||
        .send({ id: admin.userId, profileImagePath: 'invalid.jpg' })
 | 
					        .send({ id: admin.userId, profileImagePath: 'invalid.jpg' })
 | 
				
			||||||
        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
					        .set('Authorization', `Bearer ${admin.accessToken}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -261,7 +261,7 @@ describe('/user', () => {
 | 
				
			|||||||
      const before = await getUserById({ id: admin.userId }, { headers: asBearerAuth(admin.accessToken) });
 | 
					      const before = await getUserById({ id: admin.userId }, { headers: asBearerAuth(admin.accessToken) });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/user`)
 | 
					        .put(`/users`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          id: admin.userId,
 | 
					          id: admin.userId,
 | 
				
			||||||
          name: 'Name',
 | 
					          name: 'Name',
 | 
				
			||||||
@ -280,7 +280,7 @@ describe('/user', () => {
 | 
				
			|||||||
    it('should update memories enabled', async () => {
 | 
					    it('should update memories enabled', async () => {
 | 
				
			||||||
      const before = await getUserById({ id: admin.userId }, { headers: asBearerAuth(admin.accessToken) });
 | 
					      const before = await getUserById({ id: admin.userId }, { headers: asBearerAuth(admin.accessToken) });
 | 
				
			||||||
      const { status, body } = await request(app)
 | 
					      const { status, body } = await request(app)
 | 
				
			||||||
        .put(`/user`)
 | 
					        .put(`/users`)
 | 
				
			||||||
        .send({
 | 
					        .send({
 | 
				
			||||||
          id: admin.userId,
 | 
					          id: admin.userId,
 | 
				
			||||||
          memoriesEnabled: false,
 | 
					          memoriesEnabled: false,
 | 
				
			||||||
 | 
				
			|||||||
@ -77,5 +77,5 @@ String getThumbnailUrlForRemoteId(
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
String getFaceThumbnailUrl(final String personId) {
 | 
					String getFaceThumbnailUrl(final String personId) {
 | 
				
			||||||
  return '${Store.get(StoreKey.serverEndpoint)}/person/$personId/thumbnail';
 | 
					  return '${Store.get(StoreKey.serverEndpoint)}/people/$personId/thumbnail';
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										148
									
								
								mobile/openapi/README.md
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										148
									
								
								mobile/openapi/README.md
									
									
									
										generated
									
									
									
								
							@ -73,26 +73,26 @@ All URIs are relative to */api*
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
Class | Method | HTTP request | Description
 | 
					Class | Method | HTTP request | Description
 | 
				
			||||||
------------ | ------------- | ------------- | -------------
 | 
					------------ | ------------- | ------------- | -------------
 | 
				
			||||||
*APIKeyApi* | [**createApiKey**](doc//APIKeyApi.md#createapikey) | **POST** /api-key | 
 | 
					*APIKeyApi* | [**createApiKey**](doc//APIKeyApi.md#createapikey) | **POST** /api-keys | 
 | 
				
			||||||
*APIKeyApi* | [**deleteApiKey**](doc//APIKeyApi.md#deleteapikey) | **DELETE** /api-key/{id} | 
 | 
					*APIKeyApi* | [**deleteApiKey**](doc//APIKeyApi.md#deleteapikey) | **DELETE** /api-keys/{id} | 
 | 
				
			||||||
*APIKeyApi* | [**getApiKey**](doc//APIKeyApi.md#getapikey) | **GET** /api-key/{id} | 
 | 
					*APIKeyApi* | [**getApiKey**](doc//APIKeyApi.md#getapikey) | **GET** /api-keys/{id} | 
 | 
				
			||||||
*APIKeyApi* | [**getApiKeys**](doc//APIKeyApi.md#getapikeys) | **GET** /api-key | 
 | 
					*APIKeyApi* | [**getApiKeys**](doc//APIKeyApi.md#getapikeys) | **GET** /api-keys | 
 | 
				
			||||||
*APIKeyApi* | [**updateApiKey**](doc//APIKeyApi.md#updateapikey) | **PUT** /api-key/{id} | 
 | 
					*APIKeyApi* | [**updateApiKey**](doc//APIKeyApi.md#updateapikey) | **PUT** /api-keys/{id} | 
 | 
				
			||||||
*ActivityApi* | [**createActivity**](doc//ActivityApi.md#createactivity) | **POST** /activity | 
 | 
					*ActivityApi* | [**createActivity**](doc//ActivityApi.md#createactivity) | **POST** /activities | 
 | 
				
			||||||
*ActivityApi* | [**deleteActivity**](doc//ActivityApi.md#deleteactivity) | **DELETE** /activity/{id} | 
 | 
					*ActivityApi* | [**deleteActivity**](doc//ActivityApi.md#deleteactivity) | **DELETE** /activities/{id} | 
 | 
				
			||||||
*ActivityApi* | [**getActivities**](doc//ActivityApi.md#getactivities) | **GET** /activity | 
 | 
					*ActivityApi* | [**getActivities**](doc//ActivityApi.md#getactivities) | **GET** /activities | 
 | 
				
			||||||
*ActivityApi* | [**getActivityStatistics**](doc//ActivityApi.md#getactivitystatistics) | **GET** /activity/statistics | 
 | 
					*ActivityApi* | [**getActivityStatistics**](doc//ActivityApi.md#getactivitystatistics) | **GET** /activities/statistics | 
 | 
				
			||||||
*AlbumApi* | [**addAssetsToAlbum**](doc//AlbumApi.md#addassetstoalbum) | **PUT** /album/{id}/assets | 
 | 
					*AlbumApi* | [**addAssetsToAlbum**](doc//AlbumApi.md#addassetstoalbum) | **PUT** /albums/{id}/assets | 
 | 
				
			||||||
*AlbumApi* | [**addUsersToAlbum**](doc//AlbumApi.md#adduserstoalbum) | **PUT** /album/{id}/users | 
 | 
					*AlbumApi* | [**addUsersToAlbum**](doc//AlbumApi.md#adduserstoalbum) | **PUT** /albums/{id}/users | 
 | 
				
			||||||
*AlbumApi* | [**createAlbum**](doc//AlbumApi.md#createalbum) | **POST** /album | 
 | 
					*AlbumApi* | [**createAlbum**](doc//AlbumApi.md#createalbum) | **POST** /albums | 
 | 
				
			||||||
*AlbumApi* | [**deleteAlbum**](doc//AlbumApi.md#deletealbum) | **DELETE** /album/{id} | 
 | 
					*AlbumApi* | [**deleteAlbum**](doc//AlbumApi.md#deletealbum) | **DELETE** /albums/{id} | 
 | 
				
			||||||
*AlbumApi* | [**getAlbumCount**](doc//AlbumApi.md#getalbumcount) | **GET** /album/count | 
 | 
					*AlbumApi* | [**getAlbumCount**](doc//AlbumApi.md#getalbumcount) | **GET** /albums/count | 
 | 
				
			||||||
*AlbumApi* | [**getAlbumInfo**](doc//AlbumApi.md#getalbuminfo) | **GET** /album/{id} | 
 | 
					*AlbumApi* | [**getAlbumInfo**](doc//AlbumApi.md#getalbuminfo) | **GET** /albums/{id} | 
 | 
				
			||||||
*AlbumApi* | [**getAllAlbums**](doc//AlbumApi.md#getallalbums) | **GET** /album | 
 | 
					*AlbumApi* | [**getAllAlbums**](doc//AlbumApi.md#getallalbums) | **GET** /albums | 
 | 
				
			||||||
*AlbumApi* | [**removeAssetFromAlbum**](doc//AlbumApi.md#removeassetfromalbum) | **DELETE** /album/{id}/assets | 
 | 
					*AlbumApi* | [**removeAssetFromAlbum**](doc//AlbumApi.md#removeassetfromalbum) | **DELETE** /albums/{id}/assets | 
 | 
				
			||||||
*AlbumApi* | [**removeUserFromAlbum**](doc//AlbumApi.md#removeuserfromalbum) | **DELETE** /album/{id}/user/{userId} | 
 | 
					*AlbumApi* | [**removeUserFromAlbum**](doc//AlbumApi.md#removeuserfromalbum) | **DELETE** /albums/{id}/user/{userId} | 
 | 
				
			||||||
*AlbumApi* | [**updateAlbumInfo**](doc//AlbumApi.md#updatealbuminfo) | **PATCH** /album/{id} | 
 | 
					*AlbumApi* | [**updateAlbumInfo**](doc//AlbumApi.md#updatealbuminfo) | **PATCH** /albums/{id} | 
 | 
				
			||||||
*AlbumApi* | [**updateAlbumUser**](doc//AlbumApi.md#updatealbumuser) | **PUT** /album/{id}/user/{userId} | 
 | 
					*AlbumApi* | [**updateAlbumUser**](doc//AlbumApi.md#updatealbumuser) | **PUT** /albums/{id}/user/{userId} | 
 | 
				
			||||||
*AssetApi* | [**checkBulkUpload**](doc//AssetApi.md#checkbulkupload) | **POST** /asset/bulk-upload-check | 
 | 
					*AssetApi* | [**checkBulkUpload**](doc//AssetApi.md#checkbulkupload) | **POST** /asset/bulk-upload-check | 
 | 
				
			||||||
*AssetApi* | [**checkExistingAssets**](doc//AssetApi.md#checkexistingassets) | **POST** /asset/exist | 
 | 
					*AssetApi* | [**checkExistingAssets**](doc//AssetApi.md#checkexistingassets) | **POST** /asset/exist | 
 | 
				
			||||||
*AssetApi* | [**deleteAssets**](doc//AssetApi.md#deleteassets) | **DELETE** /asset | 
 | 
					*AssetApi* | [**deleteAssets**](doc//AssetApi.md#deleteassets) | **DELETE** /asset | 
 | 
				
			||||||
@ -121,22 +121,22 @@ Class | Method | HTTP request | Description
 | 
				
			|||||||
*DownloadApi* | [**downloadFile**](doc//DownloadApi.md#downloadfile) | **POST** /download/asset/{id} | 
 | 
					*DownloadApi* | [**downloadFile**](doc//DownloadApi.md#downloadfile) | **POST** /download/asset/{id} | 
 | 
				
			||||||
*DownloadApi* | [**getDownloadInfo**](doc//DownloadApi.md#getdownloadinfo) | **POST** /download/info | 
 | 
					*DownloadApi* | [**getDownloadInfo**](doc//DownloadApi.md#getdownloadinfo) | **POST** /download/info | 
 | 
				
			||||||
*DuplicateApi* | [**getAssetDuplicates**](doc//DuplicateApi.md#getassetduplicates) | **GET** /duplicates | 
 | 
					*DuplicateApi* | [**getAssetDuplicates**](doc//DuplicateApi.md#getassetduplicates) | **GET** /duplicates | 
 | 
				
			||||||
*FaceApi* | [**getFaces**](doc//FaceApi.md#getfaces) | **GET** /face | 
 | 
					*FaceApi* | [**getFaces**](doc//FaceApi.md#getfaces) | **GET** /faces | 
 | 
				
			||||||
*FaceApi* | [**reassignFacesById**](doc//FaceApi.md#reassignfacesbyid) | **PUT** /face/{id} | 
 | 
					*FaceApi* | [**reassignFacesById**](doc//FaceApi.md#reassignfacesbyid) | **PUT** /faces/{id} | 
 | 
				
			||||||
*FileReportApi* | [**fixAuditFiles**](doc//FileReportApi.md#fixauditfiles) | **POST** /report/fix | 
 | 
					*FileReportApi* | [**fixAuditFiles**](doc//FileReportApi.md#fixauditfiles) | **POST** /reports/fix | 
 | 
				
			||||||
*FileReportApi* | [**getAuditFiles**](doc//FileReportApi.md#getauditfiles) | **GET** /report | 
 | 
					*FileReportApi* | [**getAuditFiles**](doc//FileReportApi.md#getauditfiles) | **GET** /reports | 
 | 
				
			||||||
*FileReportApi* | [**getFileChecksums**](doc//FileReportApi.md#getfilechecksums) | **POST** /report/checksum | 
 | 
					*FileReportApi* | [**getFileChecksums**](doc//FileReportApi.md#getfilechecksums) | **POST** /reports/checksum | 
 | 
				
			||||||
*JobApi* | [**getAllJobsStatus**](doc//JobApi.md#getalljobsstatus) | **GET** /jobs | 
 | 
					*JobApi* | [**getAllJobsStatus**](doc//JobApi.md#getalljobsstatus) | **GET** /jobs | 
 | 
				
			||||||
*JobApi* | [**sendJobCommand**](doc//JobApi.md#sendjobcommand) | **PUT** /jobs/{id} | 
 | 
					*JobApi* | [**sendJobCommand**](doc//JobApi.md#sendjobcommand) | **PUT** /jobs/{id} | 
 | 
				
			||||||
*LibraryApi* | [**createLibrary**](doc//LibraryApi.md#createlibrary) | **POST** /library | 
 | 
					*LibraryApi* | [**createLibrary**](doc//LibraryApi.md#createlibrary) | **POST** /libraries | 
 | 
				
			||||||
*LibraryApi* | [**deleteLibrary**](doc//LibraryApi.md#deletelibrary) | **DELETE** /library/{id} | 
 | 
					*LibraryApi* | [**deleteLibrary**](doc//LibraryApi.md#deletelibrary) | **DELETE** /libraries/{id} | 
 | 
				
			||||||
*LibraryApi* | [**getAllLibraries**](doc//LibraryApi.md#getalllibraries) | **GET** /library | 
 | 
					*LibraryApi* | [**getAllLibraries**](doc//LibraryApi.md#getalllibraries) | **GET** /libraries | 
 | 
				
			||||||
*LibraryApi* | [**getLibrary**](doc//LibraryApi.md#getlibrary) | **GET** /library/{id} | 
 | 
					*LibraryApi* | [**getLibrary**](doc//LibraryApi.md#getlibrary) | **GET** /libraries/{id} | 
 | 
				
			||||||
*LibraryApi* | [**getLibraryStatistics**](doc//LibraryApi.md#getlibrarystatistics) | **GET** /library/{id}/statistics | 
 | 
					*LibraryApi* | [**getLibraryStatistics**](doc//LibraryApi.md#getlibrarystatistics) | **GET** /libraries/{id}/statistics | 
 | 
				
			||||||
*LibraryApi* | [**removeOfflineFiles**](doc//LibraryApi.md#removeofflinefiles) | **POST** /library/{id}/removeOffline | 
 | 
					*LibraryApi* | [**removeOfflineFiles**](doc//LibraryApi.md#removeofflinefiles) | **POST** /libraries/{id}/removeOffline | 
 | 
				
			||||||
*LibraryApi* | [**scanLibrary**](doc//LibraryApi.md#scanlibrary) | **POST** /library/{id}/scan | 
 | 
					*LibraryApi* | [**scanLibrary**](doc//LibraryApi.md#scanlibrary) | **POST** /libraries/{id}/scan | 
 | 
				
			||||||
*LibraryApi* | [**updateLibrary**](doc//LibraryApi.md#updatelibrary) | **PUT** /library/{id} | 
 | 
					*LibraryApi* | [**updateLibrary**](doc//LibraryApi.md#updatelibrary) | **PUT** /libraries/{id} | 
 | 
				
			||||||
*LibraryApi* | [**validate**](doc//LibraryApi.md#validate) | **POST** /library/{id}/validate | 
 | 
					*LibraryApi* | [**validate**](doc//LibraryApi.md#validate) | **POST** /libraries/{id}/validate | 
 | 
				
			||||||
*MemoryApi* | [**addMemoryAssets**](doc//MemoryApi.md#addmemoryassets) | **PUT** /memories/{id}/assets | 
 | 
					*MemoryApi* | [**addMemoryAssets**](doc//MemoryApi.md#addmemoryassets) | **PUT** /memories/{id}/assets | 
 | 
				
			||||||
*MemoryApi* | [**createMemory**](doc//MemoryApi.md#creatememory) | **POST** /memories | 
 | 
					*MemoryApi* | [**createMemory**](doc//MemoryApi.md#creatememory) | **POST** /memories | 
 | 
				
			||||||
*MemoryApi* | [**deleteMemory**](doc//MemoryApi.md#deletememory) | **DELETE** /memories/{id} | 
 | 
					*MemoryApi* | [**deleteMemory**](doc//MemoryApi.md#deletememory) | **DELETE** /memories/{id} | 
 | 
				
			||||||
@ -149,20 +149,20 @@ Class | Method | HTTP request | Description
 | 
				
			|||||||
*OAuthApi* | [**redirectOAuthToMobile**](doc//OAuthApi.md#redirectoauthtomobile) | **GET** /oauth/mobile-redirect | 
 | 
					*OAuthApi* | [**redirectOAuthToMobile**](doc//OAuthApi.md#redirectoauthtomobile) | **GET** /oauth/mobile-redirect | 
 | 
				
			||||||
*OAuthApi* | [**startOAuth**](doc//OAuthApi.md#startoauth) | **POST** /oauth/authorize | 
 | 
					*OAuthApi* | [**startOAuth**](doc//OAuthApi.md#startoauth) | **POST** /oauth/authorize | 
 | 
				
			||||||
*OAuthApi* | [**unlinkOAuthAccount**](doc//OAuthApi.md#unlinkoauthaccount) | **POST** /oauth/unlink | 
 | 
					*OAuthApi* | [**unlinkOAuthAccount**](doc//OAuthApi.md#unlinkoauthaccount) | **POST** /oauth/unlink | 
 | 
				
			||||||
*PartnerApi* | [**createPartner**](doc//PartnerApi.md#createpartner) | **POST** /partner/{id} | 
 | 
					*PartnerApi* | [**createPartner**](doc//PartnerApi.md#createpartner) | **POST** /partners/{id} | 
 | 
				
			||||||
*PartnerApi* | [**getPartners**](doc//PartnerApi.md#getpartners) | **GET** /partner | 
 | 
					*PartnerApi* | [**getPartners**](doc//PartnerApi.md#getpartners) | **GET** /partners | 
 | 
				
			||||||
*PartnerApi* | [**removePartner**](doc//PartnerApi.md#removepartner) | **DELETE** /partner/{id} | 
 | 
					*PartnerApi* | [**removePartner**](doc//PartnerApi.md#removepartner) | **DELETE** /partners/{id} | 
 | 
				
			||||||
*PartnerApi* | [**updatePartner**](doc//PartnerApi.md#updatepartner) | **PUT** /partner/{id} | 
 | 
					*PartnerApi* | [**updatePartner**](doc//PartnerApi.md#updatepartner) | **PUT** /partners/{id} | 
 | 
				
			||||||
*PersonApi* | [**createPerson**](doc//PersonApi.md#createperson) | **POST** /person | 
 | 
					*PersonApi* | [**createPerson**](doc//PersonApi.md#createperson) | **POST** /people | 
 | 
				
			||||||
*PersonApi* | [**getAllPeople**](doc//PersonApi.md#getallpeople) | **GET** /person | 
 | 
					*PersonApi* | [**getAllPeople**](doc//PersonApi.md#getallpeople) | **GET** /people | 
 | 
				
			||||||
*PersonApi* | [**getPerson**](doc//PersonApi.md#getperson) | **GET** /person/{id} | 
 | 
					*PersonApi* | [**getPerson**](doc//PersonApi.md#getperson) | **GET** /people/{id} | 
 | 
				
			||||||
*PersonApi* | [**getPersonAssets**](doc//PersonApi.md#getpersonassets) | **GET** /person/{id}/assets | 
 | 
					*PersonApi* | [**getPersonAssets**](doc//PersonApi.md#getpersonassets) | **GET** /people/{id}/assets | 
 | 
				
			||||||
*PersonApi* | [**getPersonStatistics**](doc//PersonApi.md#getpersonstatistics) | **GET** /person/{id}/statistics | 
 | 
					*PersonApi* | [**getPersonStatistics**](doc//PersonApi.md#getpersonstatistics) | **GET** /people/{id}/statistics | 
 | 
				
			||||||
*PersonApi* | [**getPersonThumbnail**](doc//PersonApi.md#getpersonthumbnail) | **GET** /person/{id}/thumbnail | 
 | 
					*PersonApi* | [**getPersonThumbnail**](doc//PersonApi.md#getpersonthumbnail) | **GET** /people/{id}/thumbnail | 
 | 
				
			||||||
*PersonApi* | [**mergePerson**](doc//PersonApi.md#mergeperson) | **POST** /person/{id}/merge | 
 | 
					*PersonApi* | [**mergePerson**](doc//PersonApi.md#mergeperson) | **POST** /people/{id}/merge | 
 | 
				
			||||||
*PersonApi* | [**reassignFaces**](doc//PersonApi.md#reassignfaces) | **PUT** /person/{id}/reassign | 
 | 
					*PersonApi* | [**reassignFaces**](doc//PersonApi.md#reassignfaces) | **PUT** /people/{id}/reassign | 
 | 
				
			||||||
*PersonApi* | [**updatePeople**](doc//PersonApi.md#updatepeople) | **PUT** /person | 
 | 
					*PersonApi* | [**updatePeople**](doc//PersonApi.md#updatepeople) | **PUT** /people | 
 | 
				
			||||||
*PersonApi* | [**updatePerson**](doc//PersonApi.md#updateperson) | **PUT** /person/{id} | 
 | 
					*PersonApi* | [**updatePerson**](doc//PersonApi.md#updateperson) | **PUT** /people/{id} | 
 | 
				
			||||||
*SearchApi* | [**getAssetsByCity**](doc//SearchApi.md#getassetsbycity) | **GET** /search/cities | 
 | 
					*SearchApi* | [**getAssetsByCity**](doc//SearchApi.md#getassetsbycity) | **GET** /search/cities | 
 | 
				
			||||||
*SearchApi* | [**getExploreData**](doc//SearchApi.md#getexploredata) | **GET** /search/explore | 
 | 
					*SearchApi* | [**getExploreData**](doc//SearchApi.md#getexploredata) | **GET** /search/explore | 
 | 
				
			||||||
*SearchApi* | [**getSearchSuggestions**](doc//SearchApi.md#getsearchsuggestions) | **GET** /search/suggestions | 
 | 
					*SearchApi* | [**getSearchSuggestions**](doc//SearchApi.md#getsearchsuggestions) | **GET** /search/suggestions | 
 | 
				
			||||||
@ -182,14 +182,14 @@ Class | Method | HTTP request | Description
 | 
				
			|||||||
*SessionsApi* | [**deleteAllSessions**](doc//SessionsApi.md#deleteallsessions) | **DELETE** /sessions | 
 | 
					*SessionsApi* | [**deleteAllSessions**](doc//SessionsApi.md#deleteallsessions) | **DELETE** /sessions | 
 | 
				
			||||||
*SessionsApi* | [**deleteSession**](doc//SessionsApi.md#deletesession) | **DELETE** /sessions/{id} | 
 | 
					*SessionsApi* | [**deleteSession**](doc//SessionsApi.md#deletesession) | **DELETE** /sessions/{id} | 
 | 
				
			||||||
*SessionsApi* | [**getSessions**](doc//SessionsApi.md#getsessions) | **GET** /sessions | 
 | 
					*SessionsApi* | [**getSessions**](doc//SessionsApi.md#getsessions) | **GET** /sessions | 
 | 
				
			||||||
*SharedLinkApi* | [**addSharedLinkAssets**](doc//SharedLinkApi.md#addsharedlinkassets) | **PUT** /shared-link/{id}/assets | 
 | 
					*SharedLinkApi* | [**addSharedLinkAssets**](doc//SharedLinkApi.md#addsharedlinkassets) | **PUT** /shared-links/{id}/assets | 
 | 
				
			||||||
*SharedLinkApi* | [**createSharedLink**](doc//SharedLinkApi.md#createsharedlink) | **POST** /shared-link | 
 | 
					*SharedLinkApi* | [**createSharedLink**](doc//SharedLinkApi.md#createsharedlink) | **POST** /shared-links | 
 | 
				
			||||||
*SharedLinkApi* | [**getAllSharedLinks**](doc//SharedLinkApi.md#getallsharedlinks) | **GET** /shared-link | 
 | 
					*SharedLinkApi* | [**getAllSharedLinks**](doc//SharedLinkApi.md#getallsharedlinks) | **GET** /shared-links | 
 | 
				
			||||||
*SharedLinkApi* | [**getMySharedLink**](doc//SharedLinkApi.md#getmysharedlink) | **GET** /shared-link/me | 
 | 
					*SharedLinkApi* | [**getMySharedLink**](doc//SharedLinkApi.md#getmysharedlink) | **GET** /shared-links/me | 
 | 
				
			||||||
*SharedLinkApi* | [**getSharedLinkById**](doc//SharedLinkApi.md#getsharedlinkbyid) | **GET** /shared-link/{id} | 
 | 
					*SharedLinkApi* | [**getSharedLinkById**](doc//SharedLinkApi.md#getsharedlinkbyid) | **GET** /shared-links/{id} | 
 | 
				
			||||||
*SharedLinkApi* | [**removeSharedLink**](doc//SharedLinkApi.md#removesharedlink) | **DELETE** /shared-link/{id} | 
 | 
					*SharedLinkApi* | [**removeSharedLink**](doc//SharedLinkApi.md#removesharedlink) | **DELETE** /shared-links/{id} | 
 | 
				
			||||||
*SharedLinkApi* | [**removeSharedLinkAssets**](doc//SharedLinkApi.md#removesharedlinkassets) | **DELETE** /shared-link/{id}/assets | 
 | 
					*SharedLinkApi* | [**removeSharedLinkAssets**](doc//SharedLinkApi.md#removesharedlinkassets) | **DELETE** /shared-links/{id}/assets | 
 | 
				
			||||||
*SharedLinkApi* | [**updateSharedLink**](doc//SharedLinkApi.md#updatesharedlink) | **PATCH** /shared-link/{id} | 
 | 
					*SharedLinkApi* | [**updateSharedLink**](doc//SharedLinkApi.md#updatesharedlink) | **PATCH** /shared-links/{id} | 
 | 
				
			||||||
*SyncApi* | [**getDeltaSync**](doc//SyncApi.md#getdeltasync) | **POST** /sync/delta-sync | 
 | 
					*SyncApi* | [**getDeltaSync**](doc//SyncApi.md#getdeltasync) | **POST** /sync/delta-sync | 
 | 
				
			||||||
*SyncApi* | [**getFullSyncForUser**](doc//SyncApi.md#getfullsyncforuser) | **POST** /sync/full-sync | 
 | 
					*SyncApi* | [**getFullSyncForUser**](doc//SyncApi.md#getfullsyncforuser) | **POST** /sync/full-sync | 
 | 
				
			||||||
*SystemConfigApi* | [**getConfig**](doc//SystemConfigApi.md#getconfig) | **GET** /system-config | 
 | 
					*SystemConfigApi* | [**getConfig**](doc//SystemConfigApi.md#getconfig) | **GET** /system-config | 
 | 
				
			||||||
@ -200,29 +200,29 @@ Class | Method | HTTP request | Description
 | 
				
			|||||||
*SystemMetadataApi* | [**getAdminOnboarding**](doc//SystemMetadataApi.md#getadminonboarding) | **GET** /system-metadata/admin-onboarding | 
 | 
					*SystemMetadataApi* | [**getAdminOnboarding**](doc//SystemMetadataApi.md#getadminonboarding) | **GET** /system-metadata/admin-onboarding | 
 | 
				
			||||||
*SystemMetadataApi* | [**getReverseGeocodingState**](doc//SystemMetadataApi.md#getreversegeocodingstate) | **GET** /system-metadata/reverse-geocoding-state | 
 | 
					*SystemMetadataApi* | [**getReverseGeocodingState**](doc//SystemMetadataApi.md#getreversegeocodingstate) | **GET** /system-metadata/reverse-geocoding-state | 
 | 
				
			||||||
*SystemMetadataApi* | [**updateAdminOnboarding**](doc//SystemMetadataApi.md#updateadminonboarding) | **POST** /system-metadata/admin-onboarding | 
 | 
					*SystemMetadataApi* | [**updateAdminOnboarding**](doc//SystemMetadataApi.md#updateadminonboarding) | **POST** /system-metadata/admin-onboarding | 
 | 
				
			||||||
*TagApi* | [**createTag**](doc//TagApi.md#createtag) | **POST** /tag | 
 | 
					*TagApi* | [**createTag**](doc//TagApi.md#createtag) | **POST** /tags | 
 | 
				
			||||||
*TagApi* | [**deleteTag**](doc//TagApi.md#deletetag) | **DELETE** /tag/{id} | 
 | 
					*TagApi* | [**deleteTag**](doc//TagApi.md#deletetag) | **DELETE** /tags/{id} | 
 | 
				
			||||||
*TagApi* | [**getAllTags**](doc//TagApi.md#getalltags) | **GET** /tag | 
 | 
					*TagApi* | [**getAllTags**](doc//TagApi.md#getalltags) | **GET** /tags | 
 | 
				
			||||||
*TagApi* | [**getTagAssets**](doc//TagApi.md#gettagassets) | **GET** /tag/{id}/assets | 
 | 
					*TagApi* | [**getTagAssets**](doc//TagApi.md#gettagassets) | **GET** /tags/{id}/assets | 
 | 
				
			||||||
*TagApi* | [**getTagById**](doc//TagApi.md#gettagbyid) | **GET** /tag/{id} | 
 | 
					*TagApi* | [**getTagById**](doc//TagApi.md#gettagbyid) | **GET** /tags/{id} | 
 | 
				
			||||||
*TagApi* | [**tagAssets**](doc//TagApi.md#tagassets) | **PUT** /tag/{id}/assets | 
 | 
					*TagApi* | [**tagAssets**](doc//TagApi.md#tagassets) | **PUT** /tags/{id}/assets | 
 | 
				
			||||||
*TagApi* | [**untagAssets**](doc//TagApi.md#untagassets) | **DELETE** /tag/{id}/assets | 
 | 
					*TagApi* | [**untagAssets**](doc//TagApi.md#untagassets) | **DELETE** /tags/{id}/assets | 
 | 
				
			||||||
*TagApi* | [**updateTag**](doc//TagApi.md#updatetag) | **PATCH** /tag/{id} | 
 | 
					*TagApi* | [**updateTag**](doc//TagApi.md#updatetag) | **PATCH** /tags/{id} | 
 | 
				
			||||||
*TimelineApi* | [**getTimeBucket**](doc//TimelineApi.md#gettimebucket) | **GET** /timeline/bucket | 
 | 
					*TimelineApi* | [**getTimeBucket**](doc//TimelineApi.md#gettimebucket) | **GET** /timeline/bucket | 
 | 
				
			||||||
*TimelineApi* | [**getTimeBuckets**](doc//TimelineApi.md#gettimebuckets) | **GET** /timeline/buckets | 
 | 
					*TimelineApi* | [**getTimeBuckets**](doc//TimelineApi.md#gettimebuckets) | **GET** /timeline/buckets | 
 | 
				
			||||||
*TrashApi* | [**emptyTrash**](doc//TrashApi.md#emptytrash) | **POST** /trash/empty | 
 | 
					*TrashApi* | [**emptyTrash**](doc//TrashApi.md#emptytrash) | **POST** /trash/empty | 
 | 
				
			||||||
*TrashApi* | [**restoreAssets**](doc//TrashApi.md#restoreassets) | **POST** /trash/restore/assets | 
 | 
					*TrashApi* | [**restoreAssets**](doc//TrashApi.md#restoreassets) | **POST** /trash/restore/assets | 
 | 
				
			||||||
*TrashApi* | [**restoreTrash**](doc//TrashApi.md#restoretrash) | **POST** /trash/restore | 
 | 
					*TrashApi* | [**restoreTrash**](doc//TrashApi.md#restoretrash) | **POST** /trash/restore | 
 | 
				
			||||||
*UserApi* | [**createProfileImage**](doc//UserApi.md#createprofileimage) | **POST** /user/profile-image | 
 | 
					*UserApi* | [**createProfileImage**](doc//UserApi.md#createprofileimage) | **POST** /users/profile-image | 
 | 
				
			||||||
*UserApi* | [**createUser**](doc//UserApi.md#createuser) | **POST** /user | 
 | 
					*UserApi* | [**createUser**](doc//UserApi.md#createuser) | **POST** /users | 
 | 
				
			||||||
*UserApi* | [**deleteProfileImage**](doc//UserApi.md#deleteprofileimage) | **DELETE** /user/profile-image | 
 | 
					*UserApi* | [**deleteProfileImage**](doc//UserApi.md#deleteprofileimage) | **DELETE** /users/profile-image | 
 | 
				
			||||||
*UserApi* | [**deleteUser**](doc//UserApi.md#deleteuser) | **DELETE** /user/{id} | 
 | 
					*UserApi* | [**deleteUser**](doc//UserApi.md#deleteuser) | **DELETE** /users/{id} | 
 | 
				
			||||||
*UserApi* | [**getAllUsers**](doc//UserApi.md#getallusers) | **GET** /user | 
 | 
					*UserApi* | [**getAllUsers**](doc//UserApi.md#getallusers) | **GET** /users | 
 | 
				
			||||||
*UserApi* | [**getMyUserInfo**](doc//UserApi.md#getmyuserinfo) | **GET** /user/me | 
 | 
					*UserApi* | [**getMyUserInfo**](doc//UserApi.md#getmyuserinfo) | **GET** /users/me | 
 | 
				
			||||||
*UserApi* | [**getProfileImage**](doc//UserApi.md#getprofileimage) | **GET** /user/profile-image/{id} | 
 | 
					*UserApi* | [**getProfileImage**](doc//UserApi.md#getprofileimage) | **GET** /users/profile-image/{id} | 
 | 
				
			||||||
*UserApi* | [**getUserById**](doc//UserApi.md#getuserbyid) | **GET** /user/info/{id} | 
 | 
					*UserApi* | [**getUserById**](doc//UserApi.md#getuserbyid) | **GET** /users/info/{id} | 
 | 
				
			||||||
*UserApi* | [**restoreUser**](doc//UserApi.md#restoreuser) | **POST** /user/{id}/restore | 
 | 
					*UserApi* | [**restoreUser**](doc//UserApi.md#restoreuser) | **POST** /users/{id}/restore | 
 | 
				
			||||||
*UserApi* | [**updateUser**](doc//UserApi.md#updateuser) | **PUT** /user | 
 | 
					*UserApi* | [**updateUser**](doc//UserApi.md#updateuser) | **PUT** /users | 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Documentation For Models
 | 
					## Documentation For Models
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										16
									
								
								mobile/openapi/lib/api/activity_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								mobile/openapi/lib/api/activity_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class ActivityApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /activity' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /activities' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [ActivityCreateDto] activityCreateDto (required):
 | 
					  /// * [ActivityCreateDto] activityCreateDto (required):
 | 
				
			||||||
  Future<Response> createActivityWithHttpInfo(ActivityCreateDto activityCreateDto,) async {
 | 
					  Future<Response> createActivityWithHttpInfo(ActivityCreateDto activityCreateDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/activity';
 | 
					    final path = r'/activities';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = activityCreateDto;
 | 
					    Object? postBody = activityCreateDto;
 | 
				
			||||||
@ -63,13 +63,13 @@ class ActivityApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /activity/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /activities/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> deleteActivityWithHttpInfo(String id,) async {
 | 
					  Future<Response> deleteActivityWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/activity/{id}'
 | 
					    final path = r'/activities/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -103,7 +103,7 @@ class ActivityApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /activity' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /activities' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] albumId (required):
 | 
					  /// * [String] albumId (required):
 | 
				
			||||||
@ -117,7 +117,7 @@ class ActivityApi {
 | 
				
			|||||||
  /// * [String] userId:
 | 
					  /// * [String] userId:
 | 
				
			||||||
  Future<Response> getActivitiesWithHttpInfo(String albumId, { String? assetId, ReactionLevel? level, ReactionType? type, String? userId, }) async {
 | 
					  Future<Response> getActivitiesWithHttpInfo(String albumId, { String? assetId, ReactionLevel? level, ReactionType? type, String? userId, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/activity';
 | 
					    final path = r'/activities';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -183,7 +183,7 @@ class ActivityApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /activity/statistics' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /activities/statistics' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] albumId (required):
 | 
					  /// * [String] albumId (required):
 | 
				
			||||||
@ -191,7 +191,7 @@ class ActivityApi {
 | 
				
			|||||||
  /// * [String] assetId:
 | 
					  /// * [String] assetId:
 | 
				
			||||||
  Future<Response> getActivityStatisticsWithHttpInfo(String albumId, { String? assetId, }) async {
 | 
					  Future<Response> getActivityStatisticsWithHttpInfo(String albumId, { String? assetId, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/activity/statistics';
 | 
					    final path = r'/activities/statistics';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										44
									
								
								mobile/openapi/lib/api/album_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										44
									
								
								mobile/openapi/lib/api/album_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,7 +16,7 @@ class AlbumApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /album/{id}/assets' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /albums/{id}/assets' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -26,7 +26,7 @@ class AlbumApi {
 | 
				
			|||||||
  /// * [String] key:
 | 
					  /// * [String] key:
 | 
				
			||||||
  Future<Response> addAssetsToAlbumWithHttpInfo(String id, BulkIdsDto bulkIdsDto, { String? key, }) async {
 | 
					  Future<Response> addAssetsToAlbumWithHttpInfo(String id, BulkIdsDto bulkIdsDto, { String? key, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/{id}/assets'
 | 
					    final path = r'/albums/{id}/assets'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -79,7 +79,7 @@ class AlbumApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /album/{id}/users' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /albums/{id}/users' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -87,7 +87,7 @@ class AlbumApi {
 | 
				
			|||||||
  /// * [AddUsersDto] addUsersDto (required):
 | 
					  /// * [AddUsersDto] addUsersDto (required):
 | 
				
			||||||
  Future<Response> addUsersToAlbumWithHttpInfo(String id, AddUsersDto addUsersDto,) async {
 | 
					  Future<Response> addUsersToAlbumWithHttpInfo(String id, AddUsersDto addUsersDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/{id}/users'
 | 
					    final path = r'/albums/{id}/users'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -131,13 +131,13 @@ class AlbumApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /album' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /albums' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [CreateAlbumDto] createAlbumDto (required):
 | 
					  /// * [CreateAlbumDto] createAlbumDto (required):
 | 
				
			||||||
  Future<Response> createAlbumWithHttpInfo(CreateAlbumDto createAlbumDto,) async {
 | 
					  Future<Response> createAlbumWithHttpInfo(CreateAlbumDto createAlbumDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album';
 | 
					    final path = r'/albums';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = createAlbumDto;
 | 
					    Object? postBody = createAlbumDto;
 | 
				
			||||||
@ -178,13 +178,13 @@ class AlbumApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /album/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /albums/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> deleteAlbumWithHttpInfo(String id,) async {
 | 
					  Future<Response> deleteAlbumWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/{id}'
 | 
					    final path = r'/albums/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -218,10 +218,10 @@ class AlbumApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /album/count' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /albums/count' operation and returns the [Response].
 | 
				
			||||||
  Future<Response> getAlbumCountWithHttpInfo() async {
 | 
					  Future<Response> getAlbumCountWithHttpInfo() async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/count';
 | 
					    final path = r'/albums/count';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -259,7 +259,7 @@ class AlbumApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /album/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /albums/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -269,7 +269,7 @@ class AlbumApi {
 | 
				
			|||||||
  /// * [bool] withoutAssets:
 | 
					  /// * [bool] withoutAssets:
 | 
				
			||||||
  Future<Response> getAlbumInfoWithHttpInfo(String id, { String? key, bool? withoutAssets, }) async {
 | 
					  Future<Response> getAlbumInfoWithHttpInfo(String id, { String? key, bool? withoutAssets, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/{id}'
 | 
					    final path = r'/albums/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -322,7 +322,7 @@ class AlbumApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /album' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /albums' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] assetId:
 | 
					  /// * [String] assetId:
 | 
				
			||||||
@ -331,7 +331,7 @@ class AlbumApi {
 | 
				
			|||||||
  /// * [bool] shared:
 | 
					  /// * [bool] shared:
 | 
				
			||||||
  Future<Response> getAllAlbumsWithHttpInfo({ String? assetId, bool? shared, }) async {
 | 
					  Future<Response> getAllAlbumsWithHttpInfo({ String? assetId, bool? shared, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album';
 | 
					    final path = r'/albums';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -385,7 +385,7 @@ class AlbumApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /album/{id}/assets' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /albums/{id}/assets' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -393,7 +393,7 @@ class AlbumApi {
 | 
				
			|||||||
  /// * [BulkIdsDto] bulkIdsDto (required):
 | 
					  /// * [BulkIdsDto] bulkIdsDto (required):
 | 
				
			||||||
  Future<Response> removeAssetFromAlbumWithHttpInfo(String id, BulkIdsDto bulkIdsDto,) async {
 | 
					  Future<Response> removeAssetFromAlbumWithHttpInfo(String id, BulkIdsDto bulkIdsDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/{id}/assets'
 | 
					    final path = r'/albums/{id}/assets'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -440,7 +440,7 @@ class AlbumApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /album/{id}/user/{userId}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /albums/{id}/user/{userId}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -448,7 +448,7 @@ class AlbumApi {
 | 
				
			|||||||
  /// * [String] userId (required):
 | 
					  /// * [String] userId (required):
 | 
				
			||||||
  Future<Response> removeUserFromAlbumWithHttpInfo(String id, String userId,) async {
 | 
					  Future<Response> removeUserFromAlbumWithHttpInfo(String id, String userId,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/{id}/user/{userId}'
 | 
					    final path = r'/albums/{id}/user/{userId}'
 | 
				
			||||||
      .replaceAll('{id}', id)
 | 
					      .replaceAll('{id}', id)
 | 
				
			||||||
      .replaceAll('{userId}', userId);
 | 
					      .replaceAll('{userId}', userId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -485,7 +485,7 @@ class AlbumApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PATCH /album/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PATCH /albums/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -493,7 +493,7 @@ class AlbumApi {
 | 
				
			|||||||
  /// * [UpdateAlbumDto] updateAlbumDto (required):
 | 
					  /// * [UpdateAlbumDto] updateAlbumDto (required):
 | 
				
			||||||
  Future<Response> updateAlbumInfoWithHttpInfo(String id, UpdateAlbumDto updateAlbumDto,) async {
 | 
					  Future<Response> updateAlbumInfoWithHttpInfo(String id, UpdateAlbumDto updateAlbumDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/{id}'
 | 
					    final path = r'/albums/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -537,7 +537,7 @@ class AlbumApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /album/{id}/user/{userId}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /albums/{id}/user/{userId}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -547,7 +547,7 @@ class AlbumApi {
 | 
				
			|||||||
  /// * [UpdateAlbumUserDto] updateAlbumUserDto (required):
 | 
					  /// * [UpdateAlbumUserDto] updateAlbumUserDto (required):
 | 
				
			||||||
  Future<Response> updateAlbumUserWithHttpInfo(String id, String userId, UpdateAlbumUserDto updateAlbumUserDto,) async {
 | 
					  Future<Response> updateAlbumUserWithHttpInfo(String id, String userId, UpdateAlbumUserDto updateAlbumUserDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/album/{id}/user/{userId}'
 | 
					    final path = r'/albums/{id}/user/{userId}'
 | 
				
			||||||
      .replaceAll('{id}', id)
 | 
					      .replaceAll('{id}', id)
 | 
				
			||||||
      .replaceAll('{userId}', userId);
 | 
					      .replaceAll('{userId}', userId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								mobile/openapi/lib/api/api_key_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										20
									
								
								mobile/openapi/lib/api/api_key_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class APIKeyApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /api-key' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /api-keys' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [APIKeyCreateDto] aPIKeyCreateDto (required):
 | 
					  /// * [APIKeyCreateDto] aPIKeyCreateDto (required):
 | 
				
			||||||
  Future<Response> createApiKeyWithHttpInfo(APIKeyCreateDto aPIKeyCreateDto,) async {
 | 
					  Future<Response> createApiKeyWithHttpInfo(APIKeyCreateDto aPIKeyCreateDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/api-key';
 | 
					    final path = r'/api-keys';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = aPIKeyCreateDto;
 | 
					    Object? postBody = aPIKeyCreateDto;
 | 
				
			||||||
@ -63,13 +63,13 @@ class APIKeyApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /api-key/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /api-keys/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> deleteApiKeyWithHttpInfo(String id,) async {
 | 
					  Future<Response> deleteApiKeyWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/api-key/{id}'
 | 
					    final path = r'/api-keys/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -103,13 +103,13 @@ class APIKeyApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /api-key/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /api-keys/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getApiKeyWithHttpInfo(String id,) async {
 | 
					  Future<Response> getApiKeyWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/api-key/{id}'
 | 
					    final path = r'/api-keys/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -151,10 +151,10 @@ class APIKeyApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /api-key' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /api-keys' operation and returns the [Response].
 | 
				
			||||||
  Future<Response> getApiKeysWithHttpInfo() async {
 | 
					  Future<Response> getApiKeysWithHttpInfo() async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/api-key';
 | 
					    final path = r'/api-keys';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -195,7 +195,7 @@ class APIKeyApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /api-key/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /api-keys/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -203,7 +203,7 @@ class APIKeyApi {
 | 
				
			|||||||
  /// * [APIKeyUpdateDto] aPIKeyUpdateDto (required):
 | 
					  /// * [APIKeyUpdateDto] aPIKeyUpdateDto (required):
 | 
				
			||||||
  Future<Response> updateApiKeyWithHttpInfo(String id, APIKeyUpdateDto aPIKeyUpdateDto,) async {
 | 
					  Future<Response> updateApiKeyWithHttpInfo(String id, APIKeyUpdateDto aPIKeyUpdateDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/api-key/{id}'
 | 
					    final path = r'/api-keys/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								mobile/openapi/lib/api/face_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								mobile/openapi/lib/api/face_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class FaceApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /face' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /faces' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getFacesWithHttpInfo(String id,) async {
 | 
					  Future<Response> getFacesWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/face';
 | 
					    final path = r'/faces';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -68,7 +68,7 @@ class FaceApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /face/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /faces/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -76,7 +76,7 @@ class FaceApi {
 | 
				
			|||||||
  /// * [FaceDto] faceDto (required):
 | 
					  /// * [FaceDto] faceDto (required):
 | 
				
			||||||
  Future<Response> reassignFacesByIdWithHttpInfo(String id, FaceDto faceDto,) async {
 | 
					  Future<Response> reassignFacesByIdWithHttpInfo(String id, FaceDto faceDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/face/{id}'
 | 
					    final path = r'/faces/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								mobile/openapi/lib/api/file_report_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										12
									
								
								mobile/openapi/lib/api/file_report_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class FileReportApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /report/fix' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /reports/fix' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [FileReportFixDto] fileReportFixDto (required):
 | 
					  /// * [FileReportFixDto] fileReportFixDto (required):
 | 
				
			||||||
  Future<Response> fixAuditFilesWithHttpInfo(FileReportFixDto fileReportFixDto,) async {
 | 
					  Future<Response> fixAuditFilesWithHttpInfo(FileReportFixDto fileReportFixDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/report/fix';
 | 
					    final path = r'/reports/fix';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = fileReportFixDto;
 | 
					    Object? postBody = fileReportFixDto;
 | 
				
			||||||
@ -55,10 +55,10 @@ class FileReportApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /report' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /reports' operation and returns the [Response].
 | 
				
			||||||
  Future<Response> getAuditFilesWithHttpInfo() async {
 | 
					  Future<Response> getAuditFilesWithHttpInfo() async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/report';
 | 
					    final path = r'/reports';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -96,13 +96,13 @@ class FileReportApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /report/checksum' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /reports/checksum' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [FileChecksumDto] fileChecksumDto (required):
 | 
					  /// * [FileChecksumDto] fileChecksumDto (required):
 | 
				
			||||||
  Future<Response> getFileChecksumsWithHttpInfo(FileChecksumDto fileChecksumDto,) async {
 | 
					  Future<Response> getFileChecksumsWithHttpInfo(FileChecksumDto fileChecksumDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/report/checksum';
 | 
					    final path = r'/reports/checksum';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = fileChecksumDto;
 | 
					    Object? postBody = fileChecksumDto;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										36
									
								
								mobile/openapi/lib/api/library_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										36
									
								
								mobile/openapi/lib/api/library_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class LibraryApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /library' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /libraries' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [CreateLibraryDto] createLibraryDto (required):
 | 
					  /// * [CreateLibraryDto] createLibraryDto (required):
 | 
				
			||||||
  Future<Response> createLibraryWithHttpInfo(CreateLibraryDto createLibraryDto,) async {
 | 
					  Future<Response> createLibraryWithHttpInfo(CreateLibraryDto createLibraryDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library';
 | 
					    final path = r'/libraries';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = createLibraryDto;
 | 
					    Object? postBody = createLibraryDto;
 | 
				
			||||||
@ -63,13 +63,13 @@ class LibraryApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /library/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /libraries/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> deleteLibraryWithHttpInfo(String id,) async {
 | 
					  Future<Response> deleteLibraryWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library/{id}'
 | 
					    final path = r'/libraries/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -103,10 +103,10 @@ class LibraryApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /library' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /libraries' operation and returns the [Response].
 | 
				
			||||||
  Future<Response> getAllLibrariesWithHttpInfo() async {
 | 
					  Future<Response> getAllLibrariesWithHttpInfo() async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library';
 | 
					    final path = r'/libraries';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -147,13 +147,13 @@ class LibraryApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /library/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /libraries/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getLibraryWithHttpInfo(String id,) async {
 | 
					  Future<Response> getLibraryWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library/{id}'
 | 
					    final path = r'/libraries/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -195,13 +195,13 @@ class LibraryApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /library/{id}/statistics' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /libraries/{id}/statistics' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getLibraryStatisticsWithHttpInfo(String id,) async {
 | 
					  Future<Response> getLibraryStatisticsWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library/{id}/statistics'
 | 
					    final path = r'/libraries/{id}/statistics'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -243,13 +243,13 @@ class LibraryApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /library/{id}/removeOffline' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /libraries/{id}/removeOffline' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> removeOfflineFilesWithHttpInfo(String id,) async {
 | 
					  Future<Response> removeOfflineFilesWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library/{id}/removeOffline'
 | 
					    final path = r'/libraries/{id}/removeOffline'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -283,7 +283,7 @@ class LibraryApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /library/{id}/scan' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /libraries/{id}/scan' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -291,7 +291,7 @@ class LibraryApi {
 | 
				
			|||||||
  /// * [ScanLibraryDto] scanLibraryDto (required):
 | 
					  /// * [ScanLibraryDto] scanLibraryDto (required):
 | 
				
			||||||
  Future<Response> scanLibraryWithHttpInfo(String id, ScanLibraryDto scanLibraryDto,) async {
 | 
					  Future<Response> scanLibraryWithHttpInfo(String id, ScanLibraryDto scanLibraryDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library/{id}/scan'
 | 
					    final path = r'/libraries/{id}/scan'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -327,7 +327,7 @@ class LibraryApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /library/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /libraries/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -335,7 +335,7 @@ class LibraryApi {
 | 
				
			|||||||
  /// * [UpdateLibraryDto] updateLibraryDto (required):
 | 
					  /// * [UpdateLibraryDto] updateLibraryDto (required):
 | 
				
			||||||
  Future<Response> updateLibraryWithHttpInfo(String id, UpdateLibraryDto updateLibraryDto,) async {
 | 
					  Future<Response> updateLibraryWithHttpInfo(String id, UpdateLibraryDto updateLibraryDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library/{id}'
 | 
					    final path = r'/libraries/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -379,7 +379,7 @@ class LibraryApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /library/{id}/validate' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /libraries/{id}/validate' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -387,7 +387,7 @@ class LibraryApi {
 | 
				
			|||||||
  /// * [ValidateLibraryDto] validateLibraryDto (required):
 | 
					  /// * [ValidateLibraryDto] validateLibraryDto (required):
 | 
				
			||||||
  Future<Response> validateWithHttpInfo(String id, ValidateLibraryDto validateLibraryDto,) async {
 | 
					  Future<Response> validateWithHttpInfo(String id, ValidateLibraryDto validateLibraryDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/library/{id}/validate'
 | 
					    final path = r'/libraries/{id}/validate'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										16
									
								
								mobile/openapi/lib/api/partner_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								mobile/openapi/lib/api/partner_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class PartnerApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /partner/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /partners/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> createPartnerWithHttpInfo(String id,) async {
 | 
					  Future<Response> createPartnerWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/partner/{id}'
 | 
					    final path = r'/partners/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -64,13 +64,13 @@ class PartnerApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /partner' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /partners' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] direction (required):
 | 
					  /// * [String] direction (required):
 | 
				
			||||||
  Future<Response> getPartnersWithHttpInfo(String direction,) async {
 | 
					  Future<Response> getPartnersWithHttpInfo(String direction,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/partner';
 | 
					    final path = r'/partners';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -116,13 +116,13 @@ class PartnerApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /partner/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /partners/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> removePartnerWithHttpInfo(String id,) async {
 | 
					  Future<Response> removePartnerWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/partner/{id}'
 | 
					    final path = r'/partners/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -156,7 +156,7 @@ class PartnerApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /partner/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /partners/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -164,7 +164,7 @@ class PartnerApi {
 | 
				
			|||||||
  /// * [UpdatePartnerDto] updatePartnerDto (required):
 | 
					  /// * [UpdatePartnerDto] updatePartnerDto (required):
 | 
				
			||||||
  Future<Response> updatePartnerWithHttpInfo(String id, UpdatePartnerDto updatePartnerDto,) async {
 | 
					  Future<Response> updatePartnerWithHttpInfo(String id, UpdatePartnerDto updatePartnerDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/partner/{id}'
 | 
					    final path = r'/partners/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										40
									
								
								mobile/openapi/lib/api/person_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										40
									
								
								mobile/openapi/lib/api/person_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class PersonApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /person' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /people' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [PersonCreateDto] personCreateDto (required):
 | 
					  /// * [PersonCreateDto] personCreateDto (required):
 | 
				
			||||||
  Future<Response> createPersonWithHttpInfo(PersonCreateDto personCreateDto,) async {
 | 
					  Future<Response> createPersonWithHttpInfo(PersonCreateDto personCreateDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person';
 | 
					    final path = r'/people';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = personCreateDto;
 | 
					    Object? postBody = personCreateDto;
 | 
				
			||||||
@ -63,13 +63,13 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /person' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /people' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [bool] withHidden:
 | 
					  /// * [bool] withHidden:
 | 
				
			||||||
  Future<Response> getAllPeopleWithHttpInfo({ bool? withHidden, }) async {
 | 
					  Future<Response> getAllPeopleWithHttpInfo({ bool? withHidden, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person';
 | 
					    final path = r'/people';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -114,13 +114,13 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /person/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /people/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getPersonWithHttpInfo(String id,) async {
 | 
					  Future<Response> getPersonWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person/{id}'
 | 
					    final path = r'/people/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -162,13 +162,13 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /person/{id}/assets' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /people/{id}/assets' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getPersonAssetsWithHttpInfo(String id,) async {
 | 
					  Future<Response> getPersonAssetsWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person/{id}/assets'
 | 
					    final path = r'/people/{id}/assets'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -213,13 +213,13 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /person/{id}/statistics' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /people/{id}/statistics' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getPersonStatisticsWithHttpInfo(String id,) async {
 | 
					  Future<Response> getPersonStatisticsWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person/{id}/statistics'
 | 
					    final path = r'/people/{id}/statistics'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -261,13 +261,13 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /person/{id}/thumbnail' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /people/{id}/thumbnail' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getPersonThumbnailWithHttpInfo(String id,) async {
 | 
					  Future<Response> getPersonThumbnailWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person/{id}/thumbnail'
 | 
					    final path = r'/people/{id}/thumbnail'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -309,7 +309,7 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /person/{id}/merge' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /people/{id}/merge' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -317,7 +317,7 @@ class PersonApi {
 | 
				
			|||||||
  /// * [MergePersonDto] mergePersonDto (required):
 | 
					  /// * [MergePersonDto] mergePersonDto (required):
 | 
				
			||||||
  Future<Response> mergePersonWithHttpInfo(String id, MergePersonDto mergePersonDto,) async {
 | 
					  Future<Response> mergePersonWithHttpInfo(String id, MergePersonDto mergePersonDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person/{id}/merge'
 | 
					    final path = r'/people/{id}/merge'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -364,7 +364,7 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /person/{id}/reassign' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /people/{id}/reassign' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -372,7 +372,7 @@ class PersonApi {
 | 
				
			|||||||
  /// * [AssetFaceUpdateDto] assetFaceUpdateDto (required):
 | 
					  /// * [AssetFaceUpdateDto] assetFaceUpdateDto (required):
 | 
				
			||||||
  Future<Response> reassignFacesWithHttpInfo(String id, AssetFaceUpdateDto assetFaceUpdateDto,) async {
 | 
					  Future<Response> reassignFacesWithHttpInfo(String id, AssetFaceUpdateDto assetFaceUpdateDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person/{id}/reassign'
 | 
					    final path = r'/people/{id}/reassign'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -419,13 +419,13 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /person' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /people' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [PeopleUpdateDto] peopleUpdateDto (required):
 | 
					  /// * [PeopleUpdateDto] peopleUpdateDto (required):
 | 
				
			||||||
  Future<Response> updatePeopleWithHttpInfo(PeopleUpdateDto peopleUpdateDto,) async {
 | 
					  Future<Response> updatePeopleWithHttpInfo(PeopleUpdateDto peopleUpdateDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person';
 | 
					    final path = r'/people';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = peopleUpdateDto;
 | 
					    Object? postBody = peopleUpdateDto;
 | 
				
			||||||
@ -469,7 +469,7 @@ class PersonApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /person/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /people/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -477,7 +477,7 @@ class PersonApi {
 | 
				
			|||||||
  /// * [PersonUpdateDto] personUpdateDto (required):
 | 
					  /// * [PersonUpdateDto] personUpdateDto (required):
 | 
				
			||||||
  Future<Response> updatePersonWithHttpInfo(String id, PersonUpdateDto personUpdateDto,) async {
 | 
					  Future<Response> updatePersonWithHttpInfo(String id, PersonUpdateDto personUpdateDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/person/{id}'
 | 
					    final path = r'/people/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										32
									
								
								mobile/openapi/lib/api/shared_link_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										32
									
								
								mobile/openapi/lib/api/shared_link_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,7 +16,7 @@ class SharedLinkApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /shared-link/{id}/assets' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /shared-links/{id}/assets' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -26,7 +26,7 @@ class SharedLinkApi {
 | 
				
			|||||||
  /// * [String] key:
 | 
					  /// * [String] key:
 | 
				
			||||||
  Future<Response> addSharedLinkAssetsWithHttpInfo(String id, AssetIdsDto assetIdsDto, { String? key, }) async {
 | 
					  Future<Response> addSharedLinkAssetsWithHttpInfo(String id, AssetIdsDto assetIdsDto, { String? key, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/shared-link/{id}/assets'
 | 
					    final path = r'/shared-links/{id}/assets'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -79,13 +79,13 @@ class SharedLinkApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /shared-link' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /shared-links' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [SharedLinkCreateDto] sharedLinkCreateDto (required):
 | 
					  /// * [SharedLinkCreateDto] sharedLinkCreateDto (required):
 | 
				
			||||||
  Future<Response> createSharedLinkWithHttpInfo(SharedLinkCreateDto sharedLinkCreateDto,) async {
 | 
					  Future<Response> createSharedLinkWithHttpInfo(SharedLinkCreateDto sharedLinkCreateDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/shared-link';
 | 
					    final path = r'/shared-links';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = sharedLinkCreateDto;
 | 
					    Object? postBody = sharedLinkCreateDto;
 | 
				
			||||||
@ -126,10 +126,10 @@ class SharedLinkApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /shared-link' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /shared-links' operation and returns the [Response].
 | 
				
			||||||
  Future<Response> getAllSharedLinksWithHttpInfo() async {
 | 
					  Future<Response> getAllSharedLinksWithHttpInfo() async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/shared-link';
 | 
					    final path = r'/shared-links';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -170,7 +170,7 @@ class SharedLinkApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /shared-link/me' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /shared-links/me' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] key:
 | 
					  /// * [String] key:
 | 
				
			||||||
@ -180,7 +180,7 @@ class SharedLinkApi {
 | 
				
			|||||||
  /// * [String] token:
 | 
					  /// * [String] token:
 | 
				
			||||||
  Future<Response> getMySharedLinkWithHttpInfo({ String? key, String? password, String? token, }) async {
 | 
					  Future<Response> getMySharedLinkWithHttpInfo({ String? key, String? password, String? token, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/shared-link/me';
 | 
					    final path = r'/shared-links/me';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -235,13 +235,13 @@ class SharedLinkApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /shared-link/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /shared-links/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getSharedLinkByIdWithHttpInfo(String id,) async {
 | 
					  Future<Response> getSharedLinkByIdWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/shared-link/{id}'
 | 
					    final path = r'/shared-links/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -283,13 +283,13 @@ class SharedLinkApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /shared-link/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /shared-links/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> removeSharedLinkWithHttpInfo(String id,) async {
 | 
					  Future<Response> removeSharedLinkWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/shared-link/{id}'
 | 
					    final path = r'/shared-links/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -323,7 +323,7 @@ class SharedLinkApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /shared-link/{id}/assets' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /shared-links/{id}/assets' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -333,7 +333,7 @@ class SharedLinkApi {
 | 
				
			|||||||
  /// * [String] key:
 | 
					  /// * [String] key:
 | 
				
			||||||
  Future<Response> removeSharedLinkAssetsWithHttpInfo(String id, AssetIdsDto assetIdsDto, { String? key, }) async {
 | 
					  Future<Response> removeSharedLinkAssetsWithHttpInfo(String id, AssetIdsDto assetIdsDto, { String? key, }) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/shared-link/{id}/assets'
 | 
					    final path = r'/shared-links/{id}/assets'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -386,7 +386,7 @@ class SharedLinkApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PATCH /shared-link/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PATCH /shared-links/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -394,7 +394,7 @@ class SharedLinkApi {
 | 
				
			|||||||
  /// * [SharedLinkEditDto] sharedLinkEditDto (required):
 | 
					  /// * [SharedLinkEditDto] sharedLinkEditDto (required):
 | 
				
			||||||
  Future<Response> updateSharedLinkWithHttpInfo(String id, SharedLinkEditDto sharedLinkEditDto,) async {
 | 
					  Future<Response> updateSharedLinkWithHttpInfo(String id, SharedLinkEditDto sharedLinkEditDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/shared-link/{id}'
 | 
					    final path = r'/shared-links/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										32
									
								
								mobile/openapi/lib/api/tag_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										32
									
								
								mobile/openapi/lib/api/tag_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class TagApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /tag' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /tags' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [CreateTagDto] createTagDto (required):
 | 
					  /// * [CreateTagDto] createTagDto (required):
 | 
				
			||||||
  Future<Response> createTagWithHttpInfo(CreateTagDto createTagDto,) async {
 | 
					  Future<Response> createTagWithHttpInfo(CreateTagDto createTagDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/tag';
 | 
					    final path = r'/tags';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = createTagDto;
 | 
					    Object? postBody = createTagDto;
 | 
				
			||||||
@ -63,13 +63,13 @@ class TagApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /tag/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /tags/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> deleteTagWithHttpInfo(String id,) async {
 | 
					  Future<Response> deleteTagWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/tag/{id}'
 | 
					    final path = r'/tags/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -103,10 +103,10 @@ class TagApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /tag' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /tags' operation and returns the [Response].
 | 
				
			||||||
  Future<Response> getAllTagsWithHttpInfo() async {
 | 
					  Future<Response> getAllTagsWithHttpInfo() async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/tag';
 | 
					    final path = r'/tags';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -147,13 +147,13 @@ class TagApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /tag/{id}/assets' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /tags/{id}/assets' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getTagAssetsWithHttpInfo(String id,) async {
 | 
					  Future<Response> getTagAssetsWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/tag/{id}/assets'
 | 
					    final path = r'/tags/{id}/assets'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -198,13 +198,13 @@ class TagApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /tag/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /tags/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getTagByIdWithHttpInfo(String id,) async {
 | 
					  Future<Response> getTagByIdWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/tag/{id}'
 | 
					    final path = r'/tags/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -246,7 +246,7 @@ class TagApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /tag/{id}/assets' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /tags/{id}/assets' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -254,7 +254,7 @@ class TagApi {
 | 
				
			|||||||
  /// * [AssetIdsDto] assetIdsDto (required):
 | 
					  /// * [AssetIdsDto] assetIdsDto (required):
 | 
				
			||||||
  Future<Response> tagAssetsWithHttpInfo(String id, AssetIdsDto assetIdsDto,) async {
 | 
					  Future<Response> tagAssetsWithHttpInfo(String id, AssetIdsDto assetIdsDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/tag/{id}/assets'
 | 
					    final path = r'/tags/{id}/assets'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -301,7 +301,7 @@ class TagApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /tag/{id}/assets' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /tags/{id}/assets' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -309,7 +309,7 @@ class TagApi {
 | 
				
			|||||||
  /// * [AssetIdsDto] assetIdsDto (required):
 | 
					  /// * [AssetIdsDto] assetIdsDto (required):
 | 
				
			||||||
  Future<Response> untagAssetsWithHttpInfo(String id, AssetIdsDto assetIdsDto,) async {
 | 
					  Future<Response> untagAssetsWithHttpInfo(String id, AssetIdsDto assetIdsDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/tag/{id}/assets'
 | 
					    final path = r'/tags/{id}/assets'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -356,7 +356,7 @@ class TagApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PATCH /tag/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PATCH /tags/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -364,7 +364,7 @@ class TagApi {
 | 
				
			|||||||
  /// * [UpdateTagDto] updateTagDto (required):
 | 
					  /// * [UpdateTagDto] updateTagDto (required):
 | 
				
			||||||
  Future<Response> updateTagWithHttpInfo(String id, UpdateTagDto updateTagDto,) async {
 | 
					  Future<Response> updateTagWithHttpInfo(String id, UpdateTagDto updateTagDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/tag/{id}'
 | 
					    final path = r'/tags/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										40
									
								
								mobile/openapi/lib/api/user_api.dart
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										40
									
								
								mobile/openapi/lib/api/user_api.dart
									
									
									
										generated
									
									
									
								
							@ -16,13 +16,13 @@ class UserApi {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  final ApiClient apiClient;
 | 
					  final ApiClient apiClient;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /user/profile-image' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /users/profile-image' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [MultipartFile] file (required):
 | 
					  /// * [MultipartFile] file (required):
 | 
				
			||||||
  Future<Response> createProfileImageWithHttpInfo(MultipartFile file,) async {
 | 
					  Future<Response> createProfileImageWithHttpInfo(MultipartFile file,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user/profile-image';
 | 
					    final path = r'/users/profile-image';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -73,13 +73,13 @@ class UserApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /user' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /users' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [CreateUserDto] createUserDto (required):
 | 
					  /// * [CreateUserDto] createUserDto (required):
 | 
				
			||||||
  Future<Response> createUserWithHttpInfo(CreateUserDto createUserDto,) async {
 | 
					  Future<Response> createUserWithHttpInfo(CreateUserDto createUserDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user';
 | 
					    final path = r'/users';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = createUserDto;
 | 
					    Object? postBody = createUserDto;
 | 
				
			||||||
@ -120,10 +120,10 @@ class UserApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /user/profile-image' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /users/profile-image' operation and returns the [Response].
 | 
				
			||||||
  Future<Response> deleteProfileImageWithHttpInfo() async {
 | 
					  Future<Response> deleteProfileImageWithHttpInfo() async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user/profile-image';
 | 
					    final path = r'/users/profile-image';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -153,7 +153,7 @@ class UserApi {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'DELETE /user/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'DELETE /users/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
@ -161,7 +161,7 @@ class UserApi {
 | 
				
			|||||||
  /// * [DeleteUserDto] deleteUserDto (required):
 | 
					  /// * [DeleteUserDto] deleteUserDto (required):
 | 
				
			||||||
  Future<Response> deleteUserWithHttpInfo(String id, DeleteUserDto deleteUserDto,) async {
 | 
					  Future<Response> deleteUserWithHttpInfo(String id, DeleteUserDto deleteUserDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user/{id}'
 | 
					    final path = r'/users/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -205,13 +205,13 @@ class UserApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /user' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /users' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [bool] isAll (required):
 | 
					  /// * [bool] isAll (required):
 | 
				
			||||||
  Future<Response> getAllUsersWithHttpInfo(bool isAll,) async {
 | 
					  Future<Response> getAllUsersWithHttpInfo(bool isAll,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user';
 | 
					    final path = r'/users';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -257,10 +257,10 @@ class UserApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /user/me' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /users/me' operation and returns the [Response].
 | 
				
			||||||
  Future<Response> getMyUserInfoWithHttpInfo() async {
 | 
					  Future<Response> getMyUserInfoWithHttpInfo() async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user/me';
 | 
					    final path = r'/users/me';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody;
 | 
					    Object? postBody;
 | 
				
			||||||
@ -298,13 +298,13 @@ class UserApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /user/profile-image/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /users/profile-image/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getProfileImageWithHttpInfo(String id,) async {
 | 
					  Future<Response> getProfileImageWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user/profile-image/{id}'
 | 
					    final path = r'/users/profile-image/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -346,13 +346,13 @@ class UserApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'GET /user/info/{id}' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'GET /users/info/{id}' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> getUserByIdWithHttpInfo(String id,) async {
 | 
					  Future<Response> getUserByIdWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user/info/{id}'
 | 
					    final path = r'/users/info/{id}'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -394,13 +394,13 @@ class UserApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'POST /user/{id}/restore' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'POST /users/{id}/restore' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [String] id (required):
 | 
					  /// * [String] id (required):
 | 
				
			||||||
  Future<Response> restoreUserWithHttpInfo(String id,) async {
 | 
					  Future<Response> restoreUserWithHttpInfo(String id,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user/{id}/restore'
 | 
					    final path = r'/users/{id}/restore'
 | 
				
			||||||
      .replaceAll('{id}', id);
 | 
					      .replaceAll('{id}', id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
@ -442,13 +442,13 @@ class UserApi {
 | 
				
			|||||||
    return null;
 | 
					    return null;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /// Performs an HTTP 'PUT /user' operation and returns the [Response].
 | 
					  /// Performs an HTTP 'PUT /users' operation and returns the [Response].
 | 
				
			||||||
  /// Parameters:
 | 
					  /// Parameters:
 | 
				
			||||||
  ///
 | 
					  ///
 | 
				
			||||||
  /// * [UpdateUserDto] updateUserDto (required):
 | 
					  /// * [UpdateUserDto] updateUserDto (required):
 | 
				
			||||||
  Future<Response> updateUserWithHttpInfo(UpdateUserDto updateUserDto,) async {
 | 
					  Future<Response> updateUserWithHttpInfo(UpdateUserDto updateUserDto,) async {
 | 
				
			||||||
    // ignore: prefer_const_declarations
 | 
					    // ignore: prefer_const_declarations
 | 
				
			||||||
    final path = r'/user';
 | 
					    final path = r'/users';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // ignore: prefer_final_locals
 | 
					    // ignore: prefer_final_locals
 | 
				
			||||||
    Object? postBody = updateUserDto;
 | 
					    Object? postBody = updateUserDto;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "openapi": "3.0.0",
 | 
					  "openapi": "3.0.0",
 | 
				
			||||||
  "paths": {
 | 
					  "paths": {
 | 
				
			||||||
    "/activity": {
 | 
					    "/activities": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getActivities",
 | 
					        "operationId": "getActivities",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -120,7 +120,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/activity/statistics": {
 | 
					    "/activities/statistics": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getActivityStatistics",
 | 
					        "operationId": "getActivityStatistics",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -171,7 +171,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/activity/{id}": {
 | 
					    "/activities/{id}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "deleteActivity",
 | 
					        "operationId": "deleteActivity",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -206,7 +206,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/album": {
 | 
					    "/albums": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getAllAlbums",
 | 
					        "operationId": "getAllAlbums",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -300,7 +300,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/album/count": {
 | 
					    "/albums/count": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getAlbumCount",
 | 
					        "operationId": "getAlbumCount",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -332,7 +332,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/album/{id}": {
 | 
					    "/albums/{id}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "deleteAlbum",
 | 
					        "operationId": "deleteAlbum",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -473,7 +473,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/album/{id}/assets": {
 | 
					    "/albums/{id}/assets": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "removeAssetFromAlbum",
 | 
					        "operationId": "removeAssetFromAlbum",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -589,7 +589,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/album/{id}/user/{userId}": {
 | 
					    "/albums/{id}/user/{userId}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "removeUserFromAlbum",
 | 
					        "operationId": "removeUserFromAlbum",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -683,7 +683,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/album/{id}/users": {
 | 
					    "/albums/{id}/users": {
 | 
				
			||||||
      "put": {
 | 
					      "put": {
 | 
				
			||||||
        "operationId": "addUsersToAlbum",
 | 
					        "operationId": "addUsersToAlbum",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -735,7 +735,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/api-key": {
 | 
					    "/api-keys": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getApiKeys",
 | 
					        "operationId": "getApiKeys",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -810,7 +810,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/api-key/{id}": {
 | 
					    "/api-keys/{id}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "deleteApiKey",
 | 
					        "operationId": "deleteApiKey",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -2256,7 +2256,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/face": {
 | 
					    "/faces": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getFaces",
 | 
					        "operationId": "getFaces",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -2301,7 +2301,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/face/{id}": {
 | 
					    "/faces/{id}": {
 | 
				
			||||||
      "put": {
 | 
					      "put": {
 | 
				
			||||||
        "operationId": "reassignFacesById",
 | 
					        "operationId": "reassignFacesById",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -2436,7 +2436,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/library": {
 | 
					    "/libraries": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getAllLibraries",
 | 
					        "operationId": "getAllLibraries",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -2511,7 +2511,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/library/{id}": {
 | 
					    "/libraries/{id}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "deleteLibrary",
 | 
					        "operationId": "deleteLibrary",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -2636,7 +2636,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/library/{id}/removeOffline": {
 | 
					    "/libraries/{id}/removeOffline": {
 | 
				
			||||||
      "post": {
 | 
					      "post": {
 | 
				
			||||||
        "operationId": "removeOfflineFiles",
 | 
					        "operationId": "removeOfflineFiles",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -2671,7 +2671,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/library/{id}/scan": {
 | 
					    "/libraries/{id}/scan": {
 | 
				
			||||||
      "post": {
 | 
					      "post": {
 | 
				
			||||||
        "operationId": "scanLibrary",
 | 
					        "operationId": "scanLibrary",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -2716,7 +2716,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/library/{id}/statistics": {
 | 
					    "/libraries/{id}/statistics": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getLibraryStatistics",
 | 
					        "operationId": "getLibraryStatistics",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -2758,7 +2758,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/library/{id}/validate": {
 | 
					    "/libraries/{id}/validate": {
 | 
				
			||||||
      "post": {
 | 
					      "post": {
 | 
				
			||||||
        "operationId": "validate",
 | 
					        "operationId": "validate",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3268,7 +3268,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/partner": {
 | 
					    "/partners": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getPartners",
 | 
					        "operationId": "getPartners",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3316,7 +3316,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/partner/{id}": {
 | 
					    "/partners/{id}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "removePartner",
 | 
					        "operationId": "removePartner",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3441,7 +3441,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/person": {
 | 
					    "/people": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getAllPeople",
 | 
					        "operationId": "getAllPeople",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3565,7 +3565,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/person/{id}": {
 | 
					    "/people/{id}": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getPerson",
 | 
					        "operationId": "getPerson",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3657,7 +3657,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/person/{id}/assets": {
 | 
					    "/people/{id}/assets": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getPersonAssets",
 | 
					        "operationId": "getPersonAssets",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3702,7 +3702,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/person/{id}/merge": {
 | 
					    "/people/{id}/merge": {
 | 
				
			||||||
      "post": {
 | 
					      "post": {
 | 
				
			||||||
        "operationId": "mergePerson",
 | 
					        "operationId": "mergePerson",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3757,7 +3757,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/person/{id}/reassign": {
 | 
					    "/people/{id}/reassign": {
 | 
				
			||||||
      "put": {
 | 
					      "put": {
 | 
				
			||||||
        "operationId": "reassignFaces",
 | 
					        "operationId": "reassignFaces",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3812,7 +3812,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/person/{id}/statistics": {
 | 
					    "/people/{id}/statistics": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getPersonStatistics",
 | 
					        "operationId": "getPersonStatistics",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3854,7 +3854,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/person/{id}/thumbnail": {
 | 
					    "/people/{id}/thumbnail": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getPersonThumbnail",
 | 
					        "operationId": "getPersonThumbnail",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -3897,7 +3897,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/report": {
 | 
					    "/reports": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getAuditFiles",
 | 
					        "operationId": "getAuditFiles",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -3929,7 +3929,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/report/checksum": {
 | 
					    "/reports/checksum": {
 | 
				
			||||||
      "post": {
 | 
					      "post": {
 | 
				
			||||||
        "operationId": "getFileChecksums",
 | 
					        "operationId": "getFileChecksums",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -3974,7 +3974,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/report/fix": {
 | 
					    "/reports/fix": {
 | 
				
			||||||
      "post": {
 | 
					      "post": {
 | 
				
			||||||
        "operationId": "fixAuditFiles",
 | 
					        "operationId": "fixAuditFiles",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -4656,7 +4656,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/shared-link": {
 | 
					    "/shared-links": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getAllSharedLinks",
 | 
					        "operationId": "getAllSharedLinks",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -4731,7 +4731,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/shared-link/me": {
 | 
					    "/shared-links/me": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getMySharedLink",
 | 
					        "operationId": "getMySharedLink",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -4789,7 +4789,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/shared-link/{id}": {
 | 
					    "/shared-links/{id}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "removeSharedLink",
 | 
					        "operationId": "removeSharedLink",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -4914,7 +4914,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/shared-link/{id}/assets": {
 | 
					    "/shared-links/{id}/assets": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "removeSharedLinkAssets",
 | 
					        "operationId": "removeSharedLinkAssets",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -5407,7 +5407,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/tag": {
 | 
					    "/tags": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getAllTags",
 | 
					        "operationId": "getAllTags",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -5482,7 +5482,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/tag/{id}": {
 | 
					    "/tags/{id}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "deleteTag",
 | 
					        "operationId": "deleteTag",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -5607,7 +5607,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/tag/{id}/assets": {
 | 
					    "/tags/{id}/assets": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "untagAssets",
 | 
					        "operationId": "untagAssets",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -6105,7 +6105,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/user": {
 | 
					    "/users": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getAllUsers",
 | 
					        "operationId": "getAllUsers",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -6229,7 +6229,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/user/info/{id}": {
 | 
					    "/users/info/{id}": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getUserById",
 | 
					        "operationId": "getUserById",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -6271,7 +6271,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/user/me": {
 | 
					    "/users/me": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getMyUserInfo",
 | 
					        "operationId": "getMyUserInfo",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -6303,7 +6303,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/user/profile-image": {
 | 
					    "/users/profile-image": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "deleteProfileImage",
 | 
					        "operationId": "deleteProfileImage",
 | 
				
			||||||
        "parameters": [],
 | 
					        "parameters": [],
 | 
				
			||||||
@ -6369,7 +6369,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/user/profile-image/{id}": {
 | 
					    "/users/profile-image/{id}": {
 | 
				
			||||||
      "get": {
 | 
					      "get": {
 | 
				
			||||||
        "operationId": "getProfileImage",
 | 
					        "operationId": "getProfileImage",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -6412,7 +6412,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/user/{id}": {
 | 
					    "/users/{id}": {
 | 
				
			||||||
      "delete": {
 | 
					      "delete": {
 | 
				
			||||||
        "operationId": "deleteUser",
 | 
					        "operationId": "deleteUser",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
@ -6464,7 +6464,7 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "/user/{id}/restore": {
 | 
					    "/users/{id}/restore": {
 | 
				
			||||||
      "post": {
 | 
					      "post": {
 | 
				
			||||||
        "operationId": "restoreUser",
 | 
					        "operationId": "restoreUser",
 | 
				
			||||||
        "parameters": [
 | 
					        "parameters": [
 | 
				
			||||||
 | 
				
			|||||||
@ -1106,7 +1106,7 @@ export function getActivities({ albumId, assetId, level, $type, userId }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: ActivityResponseDto[];
 | 
					        data: ActivityResponseDto[];
 | 
				
			||||||
    }>(`/activity${QS.query(QS.explode({
 | 
					    }>(`/activities${QS.query(QS.explode({
 | 
				
			||||||
        albumId,
 | 
					        albumId,
 | 
				
			||||||
        assetId,
 | 
					        assetId,
 | 
				
			||||||
        level,
 | 
					        level,
 | 
				
			||||||
@ -1122,7 +1122,7 @@ export function createActivity({ activityCreateDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: ActivityResponseDto;
 | 
					        data: ActivityResponseDto;
 | 
				
			||||||
    }>("/activity", oazapfts.json({
 | 
					    }>("/activities", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: activityCreateDto
 | 
					        body: activityCreateDto
 | 
				
			||||||
@ -1135,7 +1135,7 @@ export function getActivityStatistics({ albumId, assetId }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: ActivityStatisticsResponseDto;
 | 
					        data: ActivityStatisticsResponseDto;
 | 
				
			||||||
    }>(`/activity/statistics${QS.query(QS.explode({
 | 
					    }>(`/activities/statistics${QS.query(QS.explode({
 | 
				
			||||||
        albumId,
 | 
					        albumId,
 | 
				
			||||||
        assetId
 | 
					        assetId
 | 
				
			||||||
    }))}`, {
 | 
					    }))}`, {
 | 
				
			||||||
@ -1145,7 +1145,7 @@ export function getActivityStatistics({ albumId, assetId }: {
 | 
				
			|||||||
export function deleteActivity({ id }: {
 | 
					export function deleteActivity({ id }: {
 | 
				
			||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/activity/${encodeURIComponent(id)}`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/activities/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -1157,7 +1157,7 @@ export function getAllAlbums({ assetId, shared }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AlbumResponseDto[];
 | 
					        data: AlbumResponseDto[];
 | 
				
			||||||
    }>(`/album${QS.query(QS.explode({
 | 
					    }>(`/albums${QS.query(QS.explode({
 | 
				
			||||||
        assetId,
 | 
					        assetId,
 | 
				
			||||||
        shared
 | 
					        shared
 | 
				
			||||||
    }))}`, {
 | 
					    }))}`, {
 | 
				
			||||||
@ -1170,7 +1170,7 @@ export function createAlbum({ createAlbumDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: AlbumResponseDto;
 | 
					        data: AlbumResponseDto;
 | 
				
			||||||
    }>("/album", oazapfts.json({
 | 
					    }>("/albums", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: createAlbumDto
 | 
					        body: createAlbumDto
 | 
				
			||||||
@ -1180,14 +1180,14 @@ export function getAlbumCount(opts?: Oazapfts.RequestOpts) {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AlbumCountResponseDto;
 | 
					        data: AlbumCountResponseDto;
 | 
				
			||||||
    }>("/album/count", {
 | 
					    }>("/albums/count", {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
export function deleteAlbum({ id }: {
 | 
					export function deleteAlbum({ id }: {
 | 
				
			||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/album/${encodeURIComponent(id)}`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/albums/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -1200,7 +1200,7 @@ export function getAlbumInfo({ id, key, withoutAssets }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AlbumResponseDto;
 | 
					        data: AlbumResponseDto;
 | 
				
			||||||
    }>(`/album/${encodeURIComponent(id)}${QS.query(QS.explode({
 | 
					    }>(`/albums/${encodeURIComponent(id)}${QS.query(QS.explode({
 | 
				
			||||||
        key,
 | 
					        key,
 | 
				
			||||||
        withoutAssets
 | 
					        withoutAssets
 | 
				
			||||||
    }))}`, {
 | 
					    }))}`, {
 | 
				
			||||||
@ -1214,7 +1214,7 @@ export function updateAlbumInfo({ id, updateAlbumDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AlbumResponseDto;
 | 
					        data: AlbumResponseDto;
 | 
				
			||||||
    }>(`/album/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/albums/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PATCH",
 | 
					        method: "PATCH",
 | 
				
			||||||
        body: updateAlbumDto
 | 
					        body: updateAlbumDto
 | 
				
			||||||
@ -1227,7 +1227,7 @@ export function removeAssetFromAlbum({ id, bulkIdsDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: BulkIdResponseDto[];
 | 
					        data: BulkIdResponseDto[];
 | 
				
			||||||
    }>(`/album/${encodeURIComponent(id)}/assets`, oazapfts.json({
 | 
					    }>(`/albums/${encodeURIComponent(id)}/assets`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE",
 | 
					        method: "DELETE",
 | 
				
			||||||
        body: bulkIdsDto
 | 
					        body: bulkIdsDto
 | 
				
			||||||
@ -1241,7 +1241,7 @@ export function addAssetsToAlbum({ id, key, bulkIdsDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: BulkIdResponseDto[];
 | 
					        data: BulkIdResponseDto[];
 | 
				
			||||||
    }>(`/album/${encodeURIComponent(id)}/assets${QS.query(QS.explode({
 | 
					    }>(`/albums/${encodeURIComponent(id)}/assets${QS.query(QS.explode({
 | 
				
			||||||
        key
 | 
					        key
 | 
				
			||||||
    }))}`, oazapfts.json({
 | 
					    }))}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
@ -1253,7 +1253,7 @@ export function removeUserFromAlbum({ id, userId }: {
 | 
				
			|||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
    userId: string;
 | 
					    userId: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/album/${encodeURIComponent(id)}/user/${encodeURIComponent(userId)}`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/albums/${encodeURIComponent(id)}/user/${encodeURIComponent(userId)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -1263,7 +1263,7 @@ export function updateAlbumUser({ id, userId, updateAlbumUserDto }: {
 | 
				
			|||||||
    userId: string;
 | 
					    userId: string;
 | 
				
			||||||
    updateAlbumUserDto: UpdateAlbumUserDto;
 | 
					    updateAlbumUserDto: UpdateAlbumUserDto;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/album/${encodeURIComponent(id)}/user/${encodeURIComponent(userId)}`, oazapfts.json({
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/albums/${encodeURIComponent(id)}/user/${encodeURIComponent(userId)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: updateAlbumUserDto
 | 
					        body: updateAlbumUserDto
 | 
				
			||||||
@ -1276,7 +1276,7 @@ export function addUsersToAlbum({ id, addUsersDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AlbumResponseDto;
 | 
					        data: AlbumResponseDto;
 | 
				
			||||||
    }>(`/album/${encodeURIComponent(id)}/users`, oazapfts.json({
 | 
					    }>(`/albums/${encodeURIComponent(id)}/users`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: addUsersDto
 | 
					        body: addUsersDto
 | 
				
			||||||
@ -1286,7 +1286,7 @@ export function getApiKeys(opts?: Oazapfts.RequestOpts) {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: ApiKeyResponseDto[];
 | 
					        data: ApiKeyResponseDto[];
 | 
				
			||||||
    }>("/api-key", {
 | 
					    }>("/api-keys", {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1296,7 +1296,7 @@ export function createApiKey({ apiKeyCreateDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: ApiKeyCreateResponseDto;
 | 
					        data: ApiKeyCreateResponseDto;
 | 
				
			||||||
    }>("/api-key", oazapfts.json({
 | 
					    }>("/api-keys", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: apiKeyCreateDto
 | 
					        body: apiKeyCreateDto
 | 
				
			||||||
@ -1305,7 +1305,7 @@ export function createApiKey({ apiKeyCreateDto }: {
 | 
				
			|||||||
export function deleteApiKey({ id }: {
 | 
					export function deleteApiKey({ id }: {
 | 
				
			||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/api-key/${encodeURIComponent(id)}`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/api-keys/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -1316,7 +1316,7 @@ export function getApiKey({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: ApiKeyResponseDto;
 | 
					        data: ApiKeyResponseDto;
 | 
				
			||||||
    }>(`/api-key/${encodeURIComponent(id)}`, {
 | 
					    }>(`/api-keys/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1327,7 +1327,7 @@ export function updateApiKey({ id, apiKeyUpdateDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: ApiKeyResponseDto;
 | 
					        data: ApiKeyResponseDto;
 | 
				
			||||||
    }>(`/api-key/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/api-keys/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: apiKeyUpdateDto
 | 
					        body: apiKeyUpdateDto
 | 
				
			||||||
@ -1712,7 +1712,7 @@ export function getFaces({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AssetFaceResponseDto[];
 | 
					        data: AssetFaceResponseDto[];
 | 
				
			||||||
    }>(`/face${QS.query(QS.explode({
 | 
					    }>(`/faces${QS.query(QS.explode({
 | 
				
			||||||
        id
 | 
					        id
 | 
				
			||||||
    }))}`, {
 | 
					    }))}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
@ -1725,7 +1725,7 @@ export function reassignFacesById({ id, faceDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: PersonResponseDto;
 | 
					        data: PersonResponseDto;
 | 
				
			||||||
    }>(`/face/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/faces/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: faceDto
 | 
					        body: faceDto
 | 
				
			||||||
@ -1756,7 +1756,7 @@ export function getAllLibraries(opts?: Oazapfts.RequestOpts) {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: LibraryResponseDto[];
 | 
					        data: LibraryResponseDto[];
 | 
				
			||||||
    }>("/library", {
 | 
					    }>("/libraries", {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1766,7 +1766,7 @@ export function createLibrary({ createLibraryDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: LibraryResponseDto;
 | 
					        data: LibraryResponseDto;
 | 
				
			||||||
    }>("/library", oazapfts.json({
 | 
					    }>("/libraries", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: createLibraryDto
 | 
					        body: createLibraryDto
 | 
				
			||||||
@ -1775,7 +1775,7 @@ export function createLibrary({ createLibraryDto }: {
 | 
				
			|||||||
export function deleteLibrary({ id }: {
 | 
					export function deleteLibrary({ id }: {
 | 
				
			||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/library/${encodeURIComponent(id)}`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/libraries/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -1786,7 +1786,7 @@ export function getLibrary({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: LibraryResponseDto;
 | 
					        data: LibraryResponseDto;
 | 
				
			||||||
    }>(`/library/${encodeURIComponent(id)}`, {
 | 
					    }>(`/libraries/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1797,7 +1797,7 @@ export function updateLibrary({ id, updateLibraryDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: LibraryResponseDto;
 | 
					        data: LibraryResponseDto;
 | 
				
			||||||
    }>(`/library/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/libraries/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: updateLibraryDto
 | 
					        body: updateLibraryDto
 | 
				
			||||||
@ -1806,7 +1806,7 @@ export function updateLibrary({ id, updateLibraryDto }: {
 | 
				
			|||||||
export function removeOfflineFiles({ id }: {
 | 
					export function removeOfflineFiles({ id }: {
 | 
				
			||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/library/${encodeURIComponent(id)}/removeOffline`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/libraries/${encodeURIComponent(id)}/removeOffline`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST"
 | 
					        method: "POST"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -1815,7 +1815,7 @@ export function scanLibrary({ id, scanLibraryDto }: {
 | 
				
			|||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
    scanLibraryDto: ScanLibraryDto;
 | 
					    scanLibraryDto: ScanLibraryDto;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/library/${encodeURIComponent(id)}/scan`, oazapfts.json({
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/libraries/${encodeURIComponent(id)}/scan`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: scanLibraryDto
 | 
					        body: scanLibraryDto
 | 
				
			||||||
@ -1827,7 +1827,7 @@ export function getLibraryStatistics({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: LibraryStatsResponseDto;
 | 
					        data: LibraryStatsResponseDto;
 | 
				
			||||||
    }>(`/library/${encodeURIComponent(id)}/statistics`, {
 | 
					    }>(`/libraries/${encodeURIComponent(id)}/statistics`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1838,7 +1838,7 @@ export function validate({ id, validateLibraryDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: ValidateLibraryResponseDto;
 | 
					        data: ValidateLibraryResponseDto;
 | 
				
			||||||
    }>(`/library/${encodeURIComponent(id)}/validate`, oazapfts.json({
 | 
					    }>(`/libraries/${encodeURIComponent(id)}/validate`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: validateLibraryDto
 | 
					        body: validateLibraryDto
 | 
				
			||||||
@ -1977,7 +1977,7 @@ export function getPartners({ direction }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: PartnerResponseDto[];
 | 
					        data: PartnerResponseDto[];
 | 
				
			||||||
    }>(`/partner${QS.query(QS.explode({
 | 
					    }>(`/partners${QS.query(QS.explode({
 | 
				
			||||||
        direction
 | 
					        direction
 | 
				
			||||||
    }))}`, {
 | 
					    }))}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
@ -1986,7 +1986,7 @@ export function getPartners({ direction }: {
 | 
				
			|||||||
export function removePartner({ id }: {
 | 
					export function removePartner({ id }: {
 | 
				
			||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/partner/${encodeURIComponent(id)}`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/partners/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -1997,7 +1997,7 @@ export function createPartner({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: PartnerResponseDto;
 | 
					        data: PartnerResponseDto;
 | 
				
			||||||
    }>(`/partner/${encodeURIComponent(id)}`, {
 | 
					    }>(`/partners/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST"
 | 
					        method: "POST"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -2009,7 +2009,7 @@ export function updatePartner({ id, updatePartnerDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: PartnerResponseDto;
 | 
					        data: PartnerResponseDto;
 | 
				
			||||||
    }>(`/partner/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/partners/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: updatePartnerDto
 | 
					        body: updatePartnerDto
 | 
				
			||||||
@ -2021,7 +2021,7 @@ export function getAllPeople({ withHidden }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: PeopleResponseDto;
 | 
					        data: PeopleResponseDto;
 | 
				
			||||||
    }>(`/person${QS.query(QS.explode({
 | 
					    }>(`/people${QS.query(QS.explode({
 | 
				
			||||||
        withHidden
 | 
					        withHidden
 | 
				
			||||||
    }))}`, {
 | 
					    }))}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
@ -2033,7 +2033,7 @@ export function createPerson({ personCreateDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: PersonResponseDto;
 | 
					        data: PersonResponseDto;
 | 
				
			||||||
    }>("/person", oazapfts.json({
 | 
					    }>("/people", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: personCreateDto
 | 
					        body: personCreateDto
 | 
				
			||||||
@ -2045,7 +2045,7 @@ export function updatePeople({ peopleUpdateDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: BulkIdResponseDto[];
 | 
					        data: BulkIdResponseDto[];
 | 
				
			||||||
    }>("/person", oazapfts.json({
 | 
					    }>("/people", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: peopleUpdateDto
 | 
					        body: peopleUpdateDto
 | 
				
			||||||
@ -2057,7 +2057,7 @@ export function getPerson({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: PersonResponseDto;
 | 
					        data: PersonResponseDto;
 | 
				
			||||||
    }>(`/person/${encodeURIComponent(id)}`, {
 | 
					    }>(`/people/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2068,7 +2068,7 @@ export function updatePerson({ id, personUpdateDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: PersonResponseDto;
 | 
					        data: PersonResponseDto;
 | 
				
			||||||
    }>(`/person/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/people/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: personUpdateDto
 | 
					        body: personUpdateDto
 | 
				
			||||||
@ -2080,7 +2080,7 @@ export function getPersonAssets({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AssetResponseDto[];
 | 
					        data: AssetResponseDto[];
 | 
				
			||||||
    }>(`/person/${encodeURIComponent(id)}/assets`, {
 | 
					    }>(`/people/${encodeURIComponent(id)}/assets`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2091,7 +2091,7 @@ export function mergePerson({ id, mergePersonDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: BulkIdResponseDto[];
 | 
					        data: BulkIdResponseDto[];
 | 
				
			||||||
    }>(`/person/${encodeURIComponent(id)}/merge`, oazapfts.json({
 | 
					    }>(`/people/${encodeURIComponent(id)}/merge`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: mergePersonDto
 | 
					        body: mergePersonDto
 | 
				
			||||||
@ -2104,7 +2104,7 @@ export function reassignFaces({ id, assetFaceUpdateDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: PersonResponseDto[];
 | 
					        data: PersonResponseDto[];
 | 
				
			||||||
    }>(`/person/${encodeURIComponent(id)}/reassign`, oazapfts.json({
 | 
					    }>(`/people/${encodeURIComponent(id)}/reassign`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: assetFaceUpdateDto
 | 
					        body: assetFaceUpdateDto
 | 
				
			||||||
@ -2116,7 +2116,7 @@ export function getPersonStatistics({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: PersonStatisticsResponseDto;
 | 
					        data: PersonStatisticsResponseDto;
 | 
				
			||||||
    }>(`/person/${encodeURIComponent(id)}/statistics`, {
 | 
					    }>(`/people/${encodeURIComponent(id)}/statistics`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2126,7 +2126,7 @@ export function getPersonThumbnail({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchBlob<{
 | 
					    return oazapfts.ok(oazapfts.fetchBlob<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: Blob;
 | 
					        data: Blob;
 | 
				
			||||||
    }>(`/person/${encodeURIComponent(id)}/thumbnail`, {
 | 
					    }>(`/people/${encodeURIComponent(id)}/thumbnail`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2134,7 +2134,7 @@ export function getAuditFiles(opts?: Oazapfts.RequestOpts) {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: FileReportDto;
 | 
					        data: FileReportDto;
 | 
				
			||||||
    }>("/report", {
 | 
					    }>("/reports", {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2144,7 +2144,7 @@ export function getFileChecksums({ fileChecksumDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: FileChecksumResponseDto[];
 | 
					        data: FileChecksumResponseDto[];
 | 
				
			||||||
    }>("/report/checksum", oazapfts.json({
 | 
					    }>("/reports/checksum", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: fileChecksumDto
 | 
					        body: fileChecksumDto
 | 
				
			||||||
@ -2153,7 +2153,7 @@ export function getFileChecksums({ fileChecksumDto }: {
 | 
				
			|||||||
export function fixAuditFiles({ fileReportFixDto }: {
 | 
					export function fixAuditFiles({ fileReportFixDto }: {
 | 
				
			||||||
    fileReportFixDto: FileReportFixDto;
 | 
					    fileReportFixDto: FileReportFixDto;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText("/report/fix", oazapfts.json({
 | 
					    return oazapfts.ok(oazapfts.fetchText("/reports/fix", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: fileReportFixDto
 | 
					        body: fileReportFixDto
 | 
				
			||||||
@ -2346,7 +2346,7 @@ export function getAllSharedLinks(opts?: Oazapfts.RequestOpts) {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: SharedLinkResponseDto[];
 | 
					        data: SharedLinkResponseDto[];
 | 
				
			||||||
    }>("/shared-link", {
 | 
					    }>("/shared-links", {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2356,7 +2356,7 @@ export function createSharedLink({ sharedLinkCreateDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: SharedLinkResponseDto;
 | 
					        data: SharedLinkResponseDto;
 | 
				
			||||||
    }>("/shared-link", oazapfts.json({
 | 
					    }>("/shared-links", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: sharedLinkCreateDto
 | 
					        body: sharedLinkCreateDto
 | 
				
			||||||
@ -2370,7 +2370,7 @@ export function getMySharedLink({ key, password, token }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: SharedLinkResponseDto;
 | 
					        data: SharedLinkResponseDto;
 | 
				
			||||||
    }>(`/shared-link/me${QS.query(QS.explode({
 | 
					    }>(`/shared-links/me${QS.query(QS.explode({
 | 
				
			||||||
        key,
 | 
					        key,
 | 
				
			||||||
        password,
 | 
					        password,
 | 
				
			||||||
        token
 | 
					        token
 | 
				
			||||||
@ -2381,7 +2381,7 @@ export function getMySharedLink({ key, password, token }: {
 | 
				
			|||||||
export function removeSharedLink({ id }: {
 | 
					export function removeSharedLink({ id }: {
 | 
				
			||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/shared-link/${encodeURIComponent(id)}`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/shared-links/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -2392,7 +2392,7 @@ export function getSharedLinkById({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: SharedLinkResponseDto;
 | 
					        data: SharedLinkResponseDto;
 | 
				
			||||||
    }>(`/shared-link/${encodeURIComponent(id)}`, {
 | 
					    }>(`/shared-links/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2403,7 +2403,7 @@ export function updateSharedLink({ id, sharedLinkEditDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: SharedLinkResponseDto;
 | 
					        data: SharedLinkResponseDto;
 | 
				
			||||||
    }>(`/shared-link/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/shared-links/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PATCH",
 | 
					        method: "PATCH",
 | 
				
			||||||
        body: sharedLinkEditDto
 | 
					        body: sharedLinkEditDto
 | 
				
			||||||
@ -2417,7 +2417,7 @@ export function removeSharedLinkAssets({ id, key, assetIdsDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AssetIdsResponseDto[];
 | 
					        data: AssetIdsResponseDto[];
 | 
				
			||||||
    }>(`/shared-link/${encodeURIComponent(id)}/assets${QS.query(QS.explode({
 | 
					    }>(`/shared-links/${encodeURIComponent(id)}/assets${QS.query(QS.explode({
 | 
				
			||||||
        key
 | 
					        key
 | 
				
			||||||
    }))}`, oazapfts.json({
 | 
					    }))}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
@ -2433,7 +2433,7 @@ export function addSharedLinkAssets({ id, key, assetIdsDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AssetIdsResponseDto[];
 | 
					        data: AssetIdsResponseDto[];
 | 
				
			||||||
    }>(`/shared-link/${encodeURIComponent(id)}/assets${QS.query(QS.explode({
 | 
					    }>(`/shared-links/${encodeURIComponent(id)}/assets${QS.query(QS.explode({
 | 
				
			||||||
        key
 | 
					        key
 | 
				
			||||||
    }))}`, oazapfts.json({
 | 
					    }))}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
@ -2544,7 +2544,7 @@ export function getAllTags(opts?: Oazapfts.RequestOpts) {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: TagResponseDto[];
 | 
					        data: TagResponseDto[];
 | 
				
			||||||
    }>("/tag", {
 | 
					    }>("/tags", {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2554,7 +2554,7 @@ export function createTag({ createTagDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: TagResponseDto;
 | 
					        data: TagResponseDto;
 | 
				
			||||||
    }>("/tag", oazapfts.json({
 | 
					    }>("/tags", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: createTagDto
 | 
					        body: createTagDto
 | 
				
			||||||
@ -2563,7 +2563,7 @@ export function createTag({ createTagDto }: {
 | 
				
			|||||||
export function deleteTag({ id }: {
 | 
					export function deleteTag({ id }: {
 | 
				
			||||||
    id: string;
 | 
					    id: string;
 | 
				
			||||||
}, opts?: Oazapfts.RequestOpts) {
 | 
					}, opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText(`/tag/${encodeURIComponent(id)}`, {
 | 
					    return oazapfts.ok(oazapfts.fetchText(`/tags/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -2574,7 +2574,7 @@ export function getTagById({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: TagResponseDto;
 | 
					        data: TagResponseDto;
 | 
				
			||||||
    }>(`/tag/${encodeURIComponent(id)}`, {
 | 
					    }>(`/tags/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2585,7 +2585,7 @@ export function updateTag({ id, updateTagDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: TagResponseDto;
 | 
					        data: TagResponseDto;
 | 
				
			||||||
    }>(`/tag/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/tags/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PATCH",
 | 
					        method: "PATCH",
 | 
				
			||||||
        body: updateTagDto
 | 
					        body: updateTagDto
 | 
				
			||||||
@ -2598,7 +2598,7 @@ export function untagAssets({ id, assetIdsDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AssetIdsResponseDto[];
 | 
					        data: AssetIdsResponseDto[];
 | 
				
			||||||
    }>(`/tag/${encodeURIComponent(id)}/assets`, oazapfts.json({
 | 
					    }>(`/tags/${encodeURIComponent(id)}/assets`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE",
 | 
					        method: "DELETE",
 | 
				
			||||||
        body: assetIdsDto
 | 
					        body: assetIdsDto
 | 
				
			||||||
@ -2610,7 +2610,7 @@ export function getTagAssets({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AssetResponseDto[];
 | 
					        data: AssetResponseDto[];
 | 
				
			||||||
    }>(`/tag/${encodeURIComponent(id)}/assets`, {
 | 
					    }>(`/tags/${encodeURIComponent(id)}/assets`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2621,7 +2621,7 @@ export function tagAssets({ id, assetIdsDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: AssetIdsResponseDto[];
 | 
					        data: AssetIdsResponseDto[];
 | 
				
			||||||
    }>(`/tag/${encodeURIComponent(id)}/assets`, oazapfts.json({
 | 
					    }>(`/tags/${encodeURIComponent(id)}/assets`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: assetIdsDto
 | 
					        body: assetIdsDto
 | 
				
			||||||
@ -2720,7 +2720,7 @@ export function getAllUsers({ isAll }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: UserResponseDto[];
 | 
					        data: UserResponseDto[];
 | 
				
			||||||
    }>(`/user${QS.query(QS.explode({
 | 
					    }>(`/users${QS.query(QS.explode({
 | 
				
			||||||
        isAll
 | 
					        isAll
 | 
				
			||||||
    }))}`, {
 | 
					    }))}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
@ -2732,7 +2732,7 @@ export function createUser({ createUserDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: UserResponseDto;
 | 
					        data: UserResponseDto;
 | 
				
			||||||
    }>("/user", oazapfts.json({
 | 
					    }>("/users", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: createUserDto
 | 
					        body: createUserDto
 | 
				
			||||||
@ -2744,7 +2744,7 @@ export function updateUser({ updateUserDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: UserResponseDto;
 | 
					        data: UserResponseDto;
 | 
				
			||||||
    }>("/user", oazapfts.json({
 | 
					    }>("/users", oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "PUT",
 | 
					        method: "PUT",
 | 
				
			||||||
        body: updateUserDto
 | 
					        body: updateUserDto
 | 
				
			||||||
@ -2756,7 +2756,7 @@ export function getUserById({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: UserResponseDto;
 | 
					        data: UserResponseDto;
 | 
				
			||||||
    }>(`/user/info/${encodeURIComponent(id)}`, {
 | 
					    }>(`/users/info/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2764,12 +2764,12 @@ export function getMyUserInfo(opts?: Oazapfts.RequestOpts) {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: UserResponseDto;
 | 
					        data: UserResponseDto;
 | 
				
			||||||
    }>("/user/me", {
 | 
					    }>("/users/me", {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
export function deleteProfileImage(opts?: Oazapfts.RequestOpts) {
 | 
					export function deleteProfileImage(opts?: Oazapfts.RequestOpts) {
 | 
				
			||||||
    return oazapfts.ok(oazapfts.fetchText("/user/profile-image", {
 | 
					    return oazapfts.ok(oazapfts.fetchText("/users/profile-image", {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE"
 | 
					        method: "DELETE"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
@ -2780,7 +2780,7 @@ export function createProfileImage({ createProfileImageDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: CreateProfileImageResponseDto;
 | 
					        data: CreateProfileImageResponseDto;
 | 
				
			||||||
    }>("/user/profile-image", oazapfts.multipart({
 | 
					    }>("/users/profile-image", oazapfts.multipart({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST",
 | 
					        method: "POST",
 | 
				
			||||||
        body: createProfileImageDto
 | 
					        body: createProfileImageDto
 | 
				
			||||||
@ -2792,7 +2792,7 @@ export function getProfileImage({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchBlob<{
 | 
					    return oazapfts.ok(oazapfts.fetchBlob<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: Blob;
 | 
					        data: Blob;
 | 
				
			||||||
    }>(`/user/profile-image/${encodeURIComponent(id)}`, {
 | 
					    }>(`/users/profile-image/${encodeURIComponent(id)}`, {
 | 
				
			||||||
        ...opts
 | 
					        ...opts
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -2803,7 +2803,7 @@ export function deleteUser({ id, deleteUserDto }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 200;
 | 
					        status: 200;
 | 
				
			||||||
        data: UserResponseDto;
 | 
					        data: UserResponseDto;
 | 
				
			||||||
    }>(`/user/${encodeURIComponent(id)}`, oazapfts.json({
 | 
					    }>(`/users/${encodeURIComponent(id)}`, oazapfts.json({
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "DELETE",
 | 
					        method: "DELETE",
 | 
				
			||||||
        body: deleteUserDto
 | 
					        body: deleteUserDto
 | 
				
			||||||
@ -2815,7 +2815,7 @@ export function restoreUser({ id }: {
 | 
				
			|||||||
    return oazapfts.ok(oazapfts.fetchJson<{
 | 
					    return oazapfts.ok(oazapfts.fetchJson<{
 | 
				
			||||||
        status: 201;
 | 
					        status: 201;
 | 
				
			||||||
        data: UserResponseDto;
 | 
					        data: UserResponseDto;
 | 
				
			||||||
    }>(`/user/${encodeURIComponent(id)}/restore`, {
 | 
					    }>(`/users/${encodeURIComponent(id)}/restore`, {
 | 
				
			||||||
        ...opts,
 | 
					        ...opts,
 | 
				
			||||||
        method: "POST"
 | 
					        method: "POST"
 | 
				
			||||||
    }));
 | 
					    }));
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ import { ActivityService } from 'src/services/activity.service';
 | 
				
			|||||||
import { UUIDParamDto } from 'src/validation';
 | 
					import { UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('Activity')
 | 
					@ApiTags('Activity')
 | 
				
			||||||
@Controller('activity')
 | 
					@Controller('activities')
 | 
				
			||||||
export class ActivityController {
 | 
					export class ActivityController {
 | 
				
			||||||
  constructor(private service: ActivityService) {}
 | 
					  constructor(private service: ActivityService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -17,7 +17,7 @@ import { AlbumService } from 'src/services/album.service';
 | 
				
			|||||||
import { ParseMeUUIDPipe, UUIDParamDto } from 'src/validation';
 | 
					import { ParseMeUUIDPipe, UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('Album')
 | 
					@ApiTags('Album')
 | 
				
			||||||
@Controller('album')
 | 
					@Controller('albums')
 | 
				
			||||||
export class AlbumController {
 | 
					export class AlbumController {
 | 
				
			||||||
  constructor(private service: AlbumService) {}
 | 
					  constructor(private service: AlbumService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,7 @@ import { APIKeyService } from 'src/services/api-key.service';
 | 
				
			|||||||
import { UUIDParamDto } from 'src/validation';
 | 
					import { UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('API Key')
 | 
					@ApiTags('API Key')
 | 
				
			||||||
@Controller('api-key')
 | 
					@Controller('api-keys')
 | 
				
			||||||
export class APIKeyController {
 | 
					export class APIKeyController {
 | 
				
			||||||
  constructor(private service: APIKeyService) {}
 | 
					  constructor(private service: APIKeyService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,7 @@ import { PersonService } from 'src/services/person.service';
 | 
				
			|||||||
import { UUIDParamDto } from 'src/validation';
 | 
					import { UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('Face')
 | 
					@ApiTags('Face')
 | 
				
			||||||
@Controller('face')
 | 
					@Controller('faces')
 | 
				
			||||||
export class FaceController {
 | 
					export class FaceController {
 | 
				
			||||||
  constructor(private service: PersonService) {}
 | 
					  constructor(private service: PersonService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ import { Authenticated } from 'src/middleware/auth.guard';
 | 
				
			|||||||
import { AuditService } from 'src/services/audit.service';
 | 
					import { AuditService } from 'src/services/audit.service';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('File Report')
 | 
					@ApiTags('File Report')
 | 
				
			||||||
@Controller('report')
 | 
					@Controller('reports')
 | 
				
			||||||
export class ReportController {
 | 
					export class ReportController {
 | 
				
			||||||
  constructor(private service: AuditService) {}
 | 
					  constructor(private service: AuditService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ import { LibraryService } from 'src/services/library.service';
 | 
				
			|||||||
import { UUIDParamDto } from 'src/validation';
 | 
					import { UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('Library')
 | 
					@ApiTags('Library')
 | 
				
			||||||
@Controller('library')
 | 
					@Controller('libraries')
 | 
				
			||||||
export class LibraryController {
 | 
					export class LibraryController {
 | 
				
			||||||
  constructor(private service: LibraryService) {}
 | 
					  constructor(private service: LibraryService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ import { PartnerService } from 'src/services/partner.service';
 | 
				
			|||||||
import { UUIDParamDto } from 'src/validation';
 | 
					import { UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('Partner')
 | 
					@ApiTags('Partner')
 | 
				
			||||||
@Controller('partner')
 | 
					@Controller('partners')
 | 
				
			||||||
export class PartnerController {
 | 
					export class PartnerController {
 | 
				
			||||||
  constructor(private service: PartnerService) {}
 | 
					  constructor(private service: PartnerService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ import { sendFile } from 'src/utils/file';
 | 
				
			|||||||
import { UUIDParamDto } from 'src/validation';
 | 
					import { UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('Person')
 | 
					@ApiTags('Person')
 | 
				
			||||||
@Controller('person')
 | 
					@Controller('people')
 | 
				
			||||||
export class PersonController {
 | 
					export class PersonController {
 | 
				
			||||||
  constructor(
 | 
					  constructor(
 | 
				
			||||||
    private service: PersonService,
 | 
					    private service: PersonService,
 | 
				
			||||||
 | 
				
			|||||||
@ -17,7 +17,7 @@ import { respondWithCookie } from 'src/utils/response';
 | 
				
			|||||||
import { UUIDParamDto } from 'src/validation';
 | 
					import { UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('Shared Link')
 | 
					@ApiTags('Shared Link')
 | 
				
			||||||
@Controller('shared-link')
 | 
					@Controller('shared-links')
 | 
				
			||||||
export class SharedLinkController {
 | 
					export class SharedLinkController {
 | 
				
			||||||
  constructor(private service: SharedLinkService) {}
 | 
					  constructor(private service: SharedLinkService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ import { TagService } from 'src/services/tag.service';
 | 
				
			|||||||
import { UUIDParamDto } from 'src/validation';
 | 
					import { UUIDParamDto } from 'src/validation';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ApiTags('Tag')
 | 
					@ApiTags('Tag')
 | 
				
			||||||
@Controller('tag')
 | 
					@Controller('tags')
 | 
				
			||||||
export class TagController {
 | 
					export class TagController {
 | 
				
			||||||
  constructor(private service: TagService) {}
 | 
					  constructor(private service: TagService) {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,7 @@ import { AssetService, UploadFile } from 'src/services/asset.service';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export enum Route {
 | 
					export enum Route {
 | 
				
			||||||
  ASSET = 'asset',
 | 
					  ASSET = 'asset',
 | 
				
			||||||
  USER = 'user',
 | 
					  USER = 'users',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface ImmichFile extends Express.Multer.File {
 | 
					export interface ImmichFile extends Express.Multer.File {
 | 
				
			||||||
 | 
				
			|||||||
@ -174,7 +174,7 @@ export const getProfileImageUrl = (...[userId]: [string]) => {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const getPeopleThumbnailUrl = (personId: string) => {
 | 
					export const getPeopleThumbnailUrl = (personId: string) => {
 | 
				
			||||||
  const path = `/person/${personId}/thumbnail`;
 | 
					  const path = `/people/${personId}/thumbnail`;
 | 
				
			||||||
  return createUrl(path);
 | 
					  return createUrl(path);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user