Update frontend for reworked tasks api endpoint

This commit is contained in:
Michael Shamoon
2022-05-23 15:38:53 -07:00
parent 635fee08ef
commit 61eb459e9e
4 changed files with 52 additions and 36 deletions

View File

@@ -1,16 +1,13 @@
import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core'
import { first, map } from 'rxjs/operators'
import { PaperlessTask } from 'src/app/data/paperless-task'
import {
PaperlessTask,
PaperlessTaskStatus,
PaperlessTaskType,
} from 'src/app/data/paperless-task'
import { environment } from 'src/environments/environment'
interface TasksAPIResponse {
total: number
incomplete: Array<PaperlessTask>
completed: Array<PaperlessTask>
failed: Array<PaperlessTask>
}
@Injectable({
providedIn: 'root',
})
@@ -19,21 +16,26 @@ export class TasksService {
loading: boolean
public total: number
private fileTasks: PaperlessTask[] = []
private incompleteTasks: PaperlessTask[] = []
public get incomplete(): PaperlessTask[] {
return this.incompleteTasks
public get total(): number {
return this.fileTasks?.length
}
private completedTasks: PaperlessTask[] = []
public get completed(): PaperlessTask[] {
return this.completedTasks
public get incompleteFileTasks(): PaperlessTask[] {
return this.fileTasks.filter(
(t) => t.status == PaperlessTaskStatus.Incomplete
)
}
private failedTasks: PaperlessTask[] = []
public get failed(): PaperlessTask[] {
return this.failedTasks
public get completedFileTasks(): PaperlessTask[] {
return this.fileTasks.filter(
(t) => t.status == PaperlessTaskStatus.Complete
)
}
public get failedFileTasks(): PaperlessTask[] {
return this.fileTasks.filter((t) => t.status == PaperlessTaskStatus.Failed)
}
constructor(private http: HttpClient) {}
@@ -42,13 +44,10 @@ export class TasksService {
this.loading = true
this.http
.get<TasksAPIResponse>(`${this.baseUrl}tasks/`)
.get<PaperlessTask[]>(`${this.baseUrl}tasks/`)
.pipe(first())
.subscribe((r) => {
this.total = r.total
this.incompleteTasks = r.incomplete
this.completedTasks = r.completed
this.failedTasks = r.failed
this.fileTasks = r.filter((t) => t.type == PaperlessTaskType.File) // they're all File tasks, for now
this.loading = false
return true
})