Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions src/app/shared/services/api/folder.repo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -407,18 +407,6 @@ export class FolderRepo extends BaseRepo {
});
}

public navigateLean(folderVO: FolderVO): Observable<FolderResponse> {
const data = [
{
FolderVO: new FolderVO(folderVO),
},
];

return this.http.sendRequest<FolderResponse>('/folder/navigateLean', data, {
ResponseClass: FolderResponse,
});
}

public async post(folderVOs: FolderVO[]): Promise<FolderResponse> {
const data = folderVOs.map((folderVO) => ({
FolderVO: new FolderVO(folderVO),
Expand Down
20 changes: 7 additions & 13 deletions src/app/shared/services/data/data.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import { DataService } from '@shared/services/data/data.service';
import { FolderVO, RecordVO } from '@root/app/models';
import { FolderResponse } from '@shared/services/api/index.repo';
import { of } from 'rxjs';
import { HttpTestingController } from '@angular/common/http/testing';
import { environment } from '@root/environments/environment';
import { DataStatus } from '@models/data-status.enum';

import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
Expand Down Expand Up @@ -236,26 +234,22 @@ describe('DataService', () => {
await service.fetchFullItems([]);
});

it('should refresh the current folder with latest data', (done) => {
it('should refresh the current folder with latest data', async () => {
const service = TestBed.inject(DataService);
const httpMock = TestBed.inject(HttpTestingController);
const api = TestBed.inject(ApiService);
spyOn(api.folder, 'getWithChildren').and.resolveTo(
new FolderResponse(navigateMinData),
);
const navigateResponse = new FolderResponse(navigateMinData);
const currentFolder = navigateResponse.getFolderVO(true) as FolderVO;
const childItemCount = currentFolder.ChildItemVOs.length;

currentFolder.ChildItemVOs = [];
service.setCurrentFolder(currentFolder);

service
.refreshCurrentFolder()
.then(() => {
expect(currentFolder.ChildItemVOs.length).toBe(childItemCount);
done();
})
.catch(done.fail);
await service.refreshCurrentFolder();

const req = httpMock.expectOne(`${environment.apiUrl}/folder/navigateLean`);
req.flush(navigateMinData);
expect(currentFolder.ChildItemVOs.length).toBe(childItemCount);
});

it('should add items to thumbRefreshQueue that meet the criteria', (done) => {
Expand Down
34 changes: 14 additions & 20 deletions src/app/shared/services/data/data.service.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { Injectable, EventEmitter } from '@angular/core';
import { map } from 'rxjs/operators';
import { remove, find, findIndex } from 'lodash';

import { ApiService } from '@shared/services/api/api.service';
Expand Down Expand Up @@ -376,27 +375,22 @@ export class DataService {
public async refreshCurrentFolder(sortOnly = false) {
this.debug('refreshCurrentFolder (sortOnly = %o)', sortOnly);

return await this.api.folder
.navigateLean(this.currentFolder)
.pipe(
map((response: FolderResponse) => {
this.debug('refreshCurrentFolder data fetched', sortOnly);
const response: FolderResponse = await this.api.folder.getWithChildren([
this.currentFolder,
]);

if (!response.isSuccessful) {
throw response;
}
this.debug('refreshCurrentFolder data fetched', sortOnly);

return response.getFolderVO(true);
}),
)
.toPromise()
.then((updatedFolder: FolderVO) => {
this.updateChildItems(this.currentFolder, updatedFolder, sortOnly);
this.hideItemsInCurrentFolder();
this.debug('refreshCurrentFolder done', sortOnly);
this.folderUpdate.emit(this.currentFolder);
this.currentHiddenItems = [];
});
if (!response.isSuccessful) {
throw response;
}

const updatedFolder = response.getFolderVO(true);
this.updateChildItems(this.currentFolder, updatedFolder, sortOnly);
this.hideItemsInCurrentFolder();
this.debug('refreshCurrentFolder done', sortOnly);
this.folderUpdate.emit(this.currentFolder);
this.currentHiddenItems = [];
}

public updateChildItems(
Expand Down
Loading