Abstract API Endpoint to filter task fetch also by overdue
This commit is contained in:
		
							parent
							
								
									2b627b679e
								
							
						
					
					
						commit
						513a51c3db
					
				@ -5,7 +5,12 @@
 | 
				
			|||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
  <component name="ChangeListManager">
 | 
					  <component name="ChangeListManager">
 | 
				
			||||||
    <list default="true" id="3a869f59-290a-4ab2-b036-a878ce801bc4" name="Changes" comment="Forget single schedule">
 | 
					    <list default="true" id="3a869f59-290a-4ab2-b036-a878ce801bc4" name="Changes" comment="Forget single schedule">
 | 
				
			||||||
      <change beforePath="$PROJECT_DIR$/src/main/java/core/api/controller/ScheduleController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/api/controller/ScheduleController.java" afterDir="false" />
 | 
					      <change afterPath="$PROJECT_DIR$/src/main/java/core/api/models/timemanager/tasks/TaskScope.java" afterDir="false" />
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/src/main/java/core/api/controller/TaskController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/api/controller/TaskController.java" afterDir="false" />
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/src/main/java/core/repositories/timemanager/TaskRepository.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/repositories/timemanager/TaskRepository.java" afterDir="false" />
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/src/main/java/core/services/TaskService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/core/services/TaskService.java" afterDir="false" />
 | 
				
			||||||
 | 
					      <change beforePath="$PROJECT_DIR$/../openapi.yaml" beforeDir="false" afterPath="$PROJECT_DIR$/../openapi.yaml" afterDir="false" />
 | 
				
			||||||
    </list>
 | 
					    </list>
 | 
				
			||||||
    <option name="SHOW_DIALOG" value="false" />
 | 
					    <option name="SHOW_DIALOG" value="false" />
 | 
				
			||||||
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
					    <option name="HIGHLIGHT_CONFLICTS" value="true" />
 | 
				
			||||||
@ -16,8 +21,8 @@
 | 
				
			|||||||
    <option name="RECENT_TEMPLATES">
 | 
					    <option name="RECENT_TEMPLATES">
 | 
				
			||||||
      <list>
 | 
					      <list>
 | 
				
			||||||
        <option value="Interface" />
 | 
					        <option value="Interface" />
 | 
				
			||||||
        <option value="Enum" />
 | 
					 | 
				
			||||||
        <option value="Class" />
 | 
					        <option value="Class" />
 | 
				
			||||||
 | 
					        <option value="Enum" />
 | 
				
			||||||
      </list>
 | 
					      </list>
 | 
				
			||||||
    </option>
 | 
					    </option>
 | 
				
			||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
@ -41,33 +46,34 @@
 | 
				
			|||||||
    <option name="hideEmptyMiddlePackages" value="true" />
 | 
					    <option name="hideEmptyMiddlePackages" value="true" />
 | 
				
			||||||
    <option name="showLibraryContents" value="true" />
 | 
					    <option name="showLibraryContents" value="true" />
 | 
				
			||||||
  </component>
 | 
					  </component>
 | 
				
			||||||
  <component name="PropertiesComponent">{
 | 
					  <component name="PropertiesComponent"><![CDATA[{
 | 
				
			||||||
  "keyToString": {
 | 
					  "keyToString": {
 | 
				
			||||||
    "RequestMappingsPanelOrder0": "0",
 | 
					    "RequestMappingsPanelOrder0": "0",
 | 
				
			||||||
    "RequestMappingsPanelOrder1": "1",
 | 
					    "RequestMappingsPanelOrder1": "1",
 | 
				
			||||||
    "RequestMappingsPanelWidth0": "75",
 | 
					    "RequestMappingsPanelWidth0": "75",
 | 
				
			||||||
    "RequestMappingsPanelWidth1": "75",
 | 
					    "RequestMappingsPanelWidth1": "75",
 | 
				
			||||||
    "RunOnceActivity.OpenProjectViewOnStart": "true",
 | 
					    "RunOnceActivity.OpenProjectViewOnStart": "true",
 | 
				
			||||||
    "RunOnceActivity.ShowReadmeOnStart": "true",
 | 
					    "RunOnceActivity.ShowReadmeOnStart": "true",
 | 
				
			||||||
    "WebServerToolWindowFactoryState": "false",
 | 
					    "WebServerToolWindowFactoryState": "false",
 | 
				
			||||||
    "git-widget-placeholder": "issue-11-angular-update",
 | 
					    "extract.method.default.visibility": "private",
 | 
				
			||||||
    "last_directory_selection": "D:/Programmierprojekte/TimeManager/backend/src/main/java/core/api/models/timemanager",
 | 
					    "git-widget-placeholder": "issue-11-angular-update",
 | 
				
			||||||
    "last_opened_file_path": "D:/Programmierprojekte/Dicewars/client",
 | 
					    "last_directory_selection": "D:/Programmierprojekte/TimeManager/backend/src/main/java/core/api/models/timemanager",
 | 
				
			||||||
    "node.js.detected.package.eslint": "true",
 | 
					    "last_opened_file_path": "D:/Programmierprojekte/Dicewars/client",
 | 
				
			||||||
    "node.js.detected.package.tslint": "true",
 | 
					    "node.js.detected.package.eslint": "true",
 | 
				
			||||||
    "node.js.selected.package.eslint": "(autodetect)",
 | 
					    "node.js.detected.package.tslint": "true",
 | 
				
			||||||
    "node.js.selected.package.tslint": "(autodetect)",
 | 
					    "node.js.selected.package.eslint": "(autodetect)",
 | 
				
			||||||
    "nodejs_package_manager_path": "npm",
 | 
					    "node.js.selected.package.tslint": "(autodetect)",
 | 
				
			||||||
    "settings.editor.selected.configurable": "swagger",
 | 
					    "nodejs_package_manager_path": "npm",
 | 
				
			||||||
    "ts.external.directory.path": "/snap/intellij-idea-ultimate/459/plugins/javascript-impl/jsLanguageServicesImpl/external",
 | 
					    "settings.editor.selected.configurable": "swagger",
 | 
				
			||||||
    "vue.rearranger.settings.migration": "true"
 | 
					    "ts.external.directory.path": "/snap/intellij-idea-ultimate/459/plugins/javascript-impl/jsLanguageServicesImpl/external",
 | 
				
			||||||
 | 
					    "vue.rearranger.settings.migration": "true"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "keyToStringList": {
 | 
					  "keyToStringList": {
 | 
				
			||||||
    "DatabaseDriversLRU": [
 | 
					    "DatabaseDriversLRU": [
 | 
				
			||||||
      "mariadb"
 | 
					      "mariadb"
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}</component>
 | 
					}]]></component>
 | 
				
			||||||
  <component name="RunManager">
 | 
					  <component name="RunManager">
 | 
				
			||||||
    <configuration name="DemoApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
 | 
					    <configuration name="DemoApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
 | 
				
			||||||
      <module name="demo" />
 | 
					      <module name="demo" />
 | 
				
			||||||
 | 
				
			|||||||
@ -4,6 +4,7 @@ import core.api.models.auth.SimpleStatusResponse;
 | 
				
			|||||||
import core.api.models.timemanager.taskSchedule.ScheduleInfo;
 | 
					import core.api.models.timemanager.taskSchedule.ScheduleInfo;
 | 
				
			||||||
import core.api.models.timemanager.tasks.TaskEntityInfo;
 | 
					import core.api.models.timemanager.tasks.TaskEntityInfo;
 | 
				
			||||||
import core.api.models.timemanager.tasks.TaskFieldInfo;
 | 
					import core.api.models.timemanager.tasks.TaskFieldInfo;
 | 
				
			||||||
 | 
					import core.api.models.timemanager.tasks.TaskScope;
 | 
				
			||||||
import core.api.models.timemanager.tasks.TaskShortInfo;
 | 
					import core.api.models.timemanager.tasks.TaskShortInfo;
 | 
				
			||||||
import core.entities.timemanager.Task;
 | 
					import core.entities.timemanager.Task;
 | 
				
			||||||
import core.entities.timemanager.Taskgroup;
 | 
					import core.entities.timemanager.Taskgroup;
 | 
				
			||||||
@ -31,22 +32,37 @@ public class TaskController {
 | 
				
			|||||||
        this.taskgroupService = taskgroupService;
 | 
					        this.taskgroupService = taskgroupService;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @GetMapping("/tasks/all/{finished}")
 | 
					    @GetMapping("/tasks/all/{scope}/{detailed}")
 | 
				
			||||||
    public ResponseEntity<List<TaskShortInfo>> loadAllTasks(@PathVariable boolean finished) {
 | 
					    public ResponseEntity<?> loadAllTasksShort(@PathVariable TaskScope scope, @PathVariable boolean detailed) {
 | 
				
			||||||
        List<Task> taskList = taskService.loadAllTasks(SecurityContextHolder.getContext().getAuthentication().getName(), finished);
 | 
					        List<Task> taskList = taskService.loadAllTasks(SecurityContextHolder.getContext().getAuthentication().getName(), scope);
 | 
				
			||||||
        List<TaskShortInfo> taskShortInfos = new ArrayList<>();
 | 
					        List<TaskShortInfo> taskShortInfos = new ArrayList<>();
 | 
				
			||||||
 | 
					        List<TaskEntityInfo> taskInfos = new ArrayList<>();
 | 
				
			||||||
        for(Task task : taskList) {
 | 
					        for(Task task : taskList) {
 | 
				
			||||||
            List<Taskgroup> ancestors = Taskgroup.getAncestorList(task.getTaskgroup());
 | 
					            StringBuilder builder = loadTaskgroupPath(task);
 | 
				
			||||||
            ancestors.add(task.getTaskgroup());
 | 
					            if(!detailed) {
 | 
				
			||||||
            StringBuilder builder = new StringBuilder();
 | 
					                taskShortInfos.add(new TaskShortInfo(task.getTaskID(), builder.toString()));
 | 
				
			||||||
            for(Taskgroup taskgroup : ancestors) {
 | 
					            } else {
 | 
				
			||||||
                builder.append(taskgroup.getTaskgroupName()).append("/");
 | 
					                taskInfos.add(new TaskEntityInfo(task));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            builder.append(task.getTaskName());
 | 
					 | 
				
			||||||
            taskShortInfos.add(new TaskShortInfo(task.getTaskID(), builder.toString()));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return ResponseEntity.ok(taskShortInfos);
 | 
					
 | 
				
			||||||
 | 
					        if(detailed) {
 | 
				
			||||||
 | 
					            return ResponseEntity.ok(taskInfos);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return ResponseEntity.ok(taskShortInfos);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private StringBuilder loadTaskgroupPath(Task task) {
 | 
				
			||||||
 | 
					        List<Taskgroup> ancestors = Taskgroup.getAncestorList(task.getTaskgroup());
 | 
				
			||||||
 | 
					        ancestors.add(task.getTaskgroup());
 | 
				
			||||||
 | 
					        StringBuilder builder = new StringBuilder();
 | 
				
			||||||
 | 
					        for(Taskgroup taskgroup : ancestors) {
 | 
				
			||||||
 | 
					            builder.append(taskgroup.getTaskgroupName()).append("/");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        builder.append(task.getTaskName());
 | 
				
			||||||
 | 
					        return builder;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @GetMapping("/tasks/{taskgroupID}/{status}")
 | 
					    @GetMapping("/tasks/{taskgroupID}/{status}")
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					package core.api.models.timemanager.tasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public enum TaskScope {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    FINISHED,
 | 
				
			||||||
 | 
					    UNFINISHED,
 | 
				
			||||||
 | 
					    OVERDUE;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -8,6 +8,7 @@ import org.springframework.data.repository.CrudRepository;
 | 
				
			|||||||
import org.springframework.stereotype.Repository;
 | 
					import org.springframework.stereotype.Repository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.transaction.Transactional;
 | 
					import javax.transaction.Transactional;
 | 
				
			||||||
 | 
					import java.time.LocalDate;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Repository
 | 
					@Repository
 | 
				
			||||||
@ -25,4 +26,7 @@ public interface TaskRepository extends CrudRepository<Task, Long> {
 | 
				
			|||||||
    @Modifying
 | 
					    @Modifying
 | 
				
			||||||
    @Query(value = "DELETE FROM Task t WHERE t.taskID = ?1")
 | 
					    @Query(value = "DELETE FROM Task t WHERE t.taskID = ?1")
 | 
				
			||||||
    void deleteByTaskID(long taskID);
 | 
					    void deleteByTaskID(long taskID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Query(value = "SELECT t FROM Task t WHERE t.taskgroup.user.username = ?1 AND t is NOT NULL AND t.deadline > ?2")
 | 
				
			||||||
 | 
					    List<Task> findAllOverdue(String username, LocalDate now);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,7 @@
 | 
				
			|||||||
package core.services;
 | 
					package core.services;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import core.api.models.timemanager.tasks.TaskFieldInfo;
 | 
					import core.api.models.timemanager.tasks.TaskFieldInfo;
 | 
				
			||||||
 | 
					import core.api.models.timemanager.tasks.TaskScope;
 | 
				
			||||||
import core.entities.timemanager.BasicTaskSchedule;
 | 
					import core.entities.timemanager.BasicTaskSchedule;
 | 
				
			||||||
import core.entities.timemanager.Task;
 | 
					import core.entities.timemanager.Task;
 | 
				
			||||||
import core.entities.timemanager.Taskgroup;
 | 
					import core.entities.timemanager.Taskgroup;
 | 
				
			||||||
@ -10,6 +11,7 @@ import core.repositories.timemanager.TaskgroupRepository;
 | 
				
			|||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.time.LocalDate;
 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					import java.time.LocalDateTime;
 | 
				
			||||||
import java.util.*;
 | 
					import java.util.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -99,7 +101,18 @@ public class TaskService {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public List<Task> loadAllTasks(String username, boolean finished) {
 | 
					    public List<Task> loadAllTasks(String username, TaskScope scope) {
 | 
				
			||||||
        return taskRepository.findAllByUser(username, finished);
 | 
					        switch (scope) {
 | 
				
			||||||
 | 
					            case UNFINISHED, FINISHED -> {
 | 
				
			||||||
 | 
					                return taskRepository.findAllByUser(username, scope.equals(TaskScope.FINISHED));
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            case OVERDUE -> {
 | 
				
			||||||
 | 
					                return taskRepository.findAllOverdue(username, LocalDate.now());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            default -> {
 | 
				
			||||||
 | 
					                return new ArrayList<>();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -92,16 +92,20 @@ export class TaskService {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * edits an existing task
 | 
					     * edits an existing task
 | 
				
			||||||
     * edits an existing task
 | 
					     * edits an existing task
 | 
				
			||||||
     * @param finished fetches either finished or unfinished tasks
 | 
					     * @param scope defines scope of fetched tasks
 | 
				
			||||||
 | 
					     * @param detailed determines whether an detailed response is required or not
 | 
				
			||||||
     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
 | 
					     * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
 | 
				
			||||||
     * @param reportProgress flag to report request and response progress.
 | 
					     * @param reportProgress flag to report request and response progress.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public tasksAllFinishedGet(finished: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<Array<TaskShortInfo>>;
 | 
					    public tasksAllScopeDetailedGet(scope: 'FINISHED' | 'UNFINISHED' | 'OVERDUE', detailed: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<Array<TaskShortInfo> | Array<TaskEntityInfo>>;
 | 
				
			||||||
    public tasksAllFinishedGet(finished: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<Array<TaskShortInfo>>>;
 | 
					    public tasksAllScopeDetailedGet(scope: 'FINISHED' | 'UNFINISHED' | 'OVERDUE', detailed: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpResponse<Array<TaskShortInfo> | Array<TaskEntityInfo>>>;
 | 
				
			||||||
    public tasksAllFinishedGet(finished: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<Array<TaskShortInfo>>>;
 | 
					    public tasksAllScopeDetailedGet(scope: 'FINISHED' | 'UNFINISHED' | 'OVERDUE', detailed: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<HttpEvent<Array<TaskShortInfo> | Array<TaskEntityInfo>>>;
 | 
				
			||||||
    public tasksAllFinishedGet(finished: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {
 | 
					    public tasksAllScopeDetailedGet(scope: 'FINISHED' | 'UNFINISHED' | 'OVERDUE', detailed: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext}): Observable<any> {
 | 
				
			||||||
        if (finished === null || finished === undefined) {
 | 
					        if (scope === null || scope === undefined) {
 | 
				
			||||||
            throw new Error('Required parameter finished was null or undefined when calling tasksAllFinishedGet.');
 | 
					            throw new Error('Required parameter scope was null or undefined when calling tasksAllScopeDetailedGet.');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (detailed === null || detailed === undefined) {
 | 
				
			||||||
 | 
					            throw new Error('Required parameter detailed was null or undefined when calling tasksAllScopeDetailedGet.');
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        let localVarHeaders = this.defaultHeaders;
 | 
					        let localVarHeaders = this.defaultHeaders;
 | 
				
			||||||
@ -136,7 +140,7 @@ export class TaskService {
 | 
				
			|||||||
            responseType_ = 'text';
 | 
					            responseType_ = 'text';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return this.httpClient.get<Array<TaskShortInfo>>(`${this.configuration.basePath}/tasks/all/${encodeURIComponent(String(finished))}`,
 | 
					        return this.httpClient.get<Array<TaskShortInfo> | Array<TaskEntityInfo>>(`${this.configuration.basePath}/tasks/all/${encodeURIComponent(String(scope))}/${encodeURIComponent(String(detailed))}`,
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                context: localVarHttpContext,
 | 
					                context: localVarHttpContext,
 | 
				
			||||||
                responseType: <any>responseType_,
 | 
					                responseType: <any>responseType_,
 | 
				
			||||||
 | 
				
			|||||||
@ -30,7 +30,7 @@ export class ForgottenTaskStartDialogComponent implements OnInit{
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ngOnInit() {
 | 
					  ngOnInit() {
 | 
				
			||||||
    this.taskService.tasksAllFinishedGet(false).subscribe({
 | 
					    this.taskService.tasksAllScopeDetailedGet("UNFINISHED", false).subscribe({
 | 
				
			||||||
      next: resp => {
 | 
					      next: resp => {
 | 
				
			||||||
        this.tasks = resp;
 | 
					        this.tasks = resp;
 | 
				
			||||||
        this.filteredOptions = this.myControl.valueChanges.pipe(
 | 
					        this.filteredOptions = this.myControl.valueChanges.pipe(
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										27
									
								
								openapi.yaml
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								openapi.yaml
									
									
									
									
									
								
							@ -883,7 +883,7 @@ paths:
 | 
				
			|||||||
              schema:
 | 
					              schema:
 | 
				
			||||||
                type: object
 | 
					                type: object
 | 
				
			||||||
                $ref: "#/components/schemas/SimpleStatusResponse"    
 | 
					                $ref: "#/components/schemas/SimpleStatusResponse"    
 | 
				
			||||||
  /tasks/all/{finished}:
 | 
					  /tasks/all/{scope}/{detailed}:
 | 
				
			||||||
    get:
 | 
					    get:
 | 
				
			||||||
      security:
 | 
					      security:
 | 
				
			||||||
        - API_TOKEN: []
 | 
					        - API_TOKEN: []
 | 
				
			||||||
@ -892,9 +892,19 @@ paths:
 | 
				
			|||||||
      summary: edits an existing task
 | 
					      summary: edits an existing task
 | 
				
			||||||
      description: edits an existing task
 | 
					      description: edits an existing task
 | 
				
			||||||
      parameters:
 | 
					      parameters:
 | 
				
			||||||
        - name: finished
 | 
					        - name: scope
 | 
				
			||||||
          in: path
 | 
					          in: path
 | 
				
			||||||
          description: fetches either finished or unfinished tasks
 | 
					          description: defines scope of fetched tasks
 | 
				
			||||||
 | 
					          required: true
 | 
				
			||||||
 | 
					          schema:
 | 
				
			||||||
 | 
					            type: string
 | 
				
			||||||
 | 
					            enum:
 | 
				
			||||||
 | 
					              - FINISHED
 | 
				
			||||||
 | 
					              - UNFINISHED
 | 
				
			||||||
 | 
					              - OVERDUE
 | 
				
			||||||
 | 
					        - name: detailed
 | 
				
			||||||
 | 
					          in: path
 | 
				
			||||||
 | 
					          description: determines whether an detailed response is required or not
 | 
				
			||||||
          required: true
 | 
					          required: true
 | 
				
			||||||
          schema: 
 | 
					          schema: 
 | 
				
			||||||
            type: boolean
 | 
					            type: boolean
 | 
				
			||||||
@ -905,9 +915,14 @@ paths:
 | 
				
			|||||||
          content:
 | 
					          content:
 | 
				
			||||||
            application/json:
 | 
					            application/json:
 | 
				
			||||||
              schema:
 | 
					              schema:
 | 
				
			||||||
                type: array
 | 
					                oneOf:
 | 
				
			||||||
                items:
 | 
					                  - type: array
 | 
				
			||||||
                  $ref: '#/components/schemas/TaskShortInfo'
 | 
					                    items:
 | 
				
			||||||
 | 
					                      $ref: '#/components/schemas/TaskShortInfo'
 | 
				
			||||||
 | 
					                  - type: array
 | 
				
			||||||
 | 
					                    items:
 | 
				
			||||||
 | 
					                      $ref: '#/components/schemas/TaskEntityInfo'
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /tasks/{taskgroupID}/{status}:
 | 
					  /tasks/{taskgroupID}/{status}:
 | 
				
			||||||
    get: 
 | 
					    get: 
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user