<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Angular 項目TaskService

      增刪改查嗯ProjectService差不多

      import { Task } from './../domain';
      import { HttpClient } from '@angular/common/http';
      import { Inject, Injectable } from '@angular/core';
      import { count, map, mapTo, mergeMap, switchMap } from 'rxjs/operators';
      import { from, Observable } from 'rxjs';
      
      @Injectable({
        providedIn: 'root'
      })
      export class TaskService {
        private readonly domain = 'tasks';
        private headers = new Headers({
          'Content-type': 'application/json'
        });
        constructor(private httpClient: HttpClient, @Inject('BASE_CONFIG') private config: any) { }
      
        //POST
        add(task: Task): Observable<Task> {
          task.id = undefined;
          const uri = `${this.config.uri}/${this.domain}`;
          return this.httpClient.post(uri, JSON.stringify(task)).pipe(
            map(res => res as Task)
          )
        }
      
        //PUT/patch
        update(task: Task): Observable<Task> {
          const uri = `${this.config.uri}/${this.domain}/${task.id}`;
          const toUpdate = {
            desc: task.desc,
            ownerId: task.ownerId,
            participantIds: task.participantIds,
            dueDate: task.dueDate,
            reminder: task.reminder,
            priority: task.priority,
            remark: task.remark
          };
          return this.httpClient.patch(uri, JSON.stringify(toUpdate)).pipe(
            map(res => res as Task)
          )
        }
      
        //DELETE
        delete(task: Task): Observable<Task> {
          const uri = `${this.config.uri}/${this.domain}/${task.id}`;
          return this.httpClient.delete(uri).pipe(
            mapTo(task)
          )
        }
      
        //GET
        get(taskId: string): Observable<Task[]> {
          const uri = `${this.config.uri}/${this.domain}`;
          return this.httpClient.get(uri, { params: { 'taskId': taskId } }).pipe(
            map(res => res as Task[])
          )
        }
      
      }

      把所有Project相關的列表,以及相關任務全部load出來

        getByLists(lists: TaskList[]): Observable<Task[]> {
          return from(lists)
            .pipe(
              mergeMap((list: TaskList) => this.get(<string>list.id)),
              reduce((tasks: Task[], t: Task[]) => [...tasks, ...t], [])
            )
        }

      完成任務,取消完成任務

      complete(task: Task): Observable<Task> {
          const uri = `${this.config.uri}/${this.domain}/${task.id}`;
          return this.httpClient.patch<Task>(
            uri,
            JSON.stringify({ completed: !task.completed }),
            { headers: this.headers }
          ).pipe(map(res => res as Task));
        }

      移動Task

        move(taskId: string, taskListId: string): Observable<Task> {
          const uri = `${this.config.uri}/${this.domain}/${taskId}`;
          return this.httpClient.patch<Task>(
            uri,
            JSON.stringify({ taskListId: taskListId }),
            { headers: this.headers }
          );
        }

      移動全部task: 移動srcList中所有任務到target列表

        moveAll(srcListId: string, targetListId: string): Observable<Task[]> {
          return this.get(srcListId).pipe(
            mergeMap((tasks: Task[]) => from(tasks)),
            mergeMap((task: Task) => this.move(<string>task.id, targetListId)),
            reduce((arrTasks: Task[], t: Task) => {
              return [...arrTasks, t];
            }, [])
          );
        }

       

      posted @ 2021-02-24 07:04  starof  閱讀(81)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无码天堂亚洲国产AV| 日韩高清国产中文字幕| 不卡在线一区二区三区视频| 国产对白老熟女正在播放| 国产AV影片麻豆精品传媒| 亚洲精品熟女一区二区| 日夜啪啪一区二区三区| 宝贝腿开大点我添添公视频免| 吉安市| 狠狠躁日日躁夜夜躁欧美老妇| 好男人日本社区www| 国产亚洲无日韩乱码| 亚洲欧洲日韩国内高清| 国产主播精品福利午夜二区| 亚洲大成色www永久网站动图| 遵义县| 福利一区二区不卡国产| 欧洲免费一区二区三区视频| 静乐县| 国产精品亚洲а∨天堂2021| 国产日韩综合av在线| 美日韩不卡一区二区三区| 亚洲色最新高清AV网站| 玖玖在线精品免费视频| 四虎永久在线高清免费看| 国产91小视频在线观看| 亚洲中文字幕一区精品自| 日本成熟少妇喷浆视频| 人妻少妇久久中文字幕| 欧美老熟妇又粗又大| 九九热视频在线观看精品| 国产免费高清69式视频在线观看| 国产精品久久久久影院亚瑟| 国产AV影片麻豆精品传媒| 欧洲精品码一区二区三区| 国产高颜值不卡一区二区 | 韩国免费a级毛片久久| 少妇久久久久久久久久| 亚洲AV成人片不卡无码| 中文字幕在线永久免费视频| 午夜成年男人免费网站|