Skip to content

TodoList API

n-ryu edited this page Nov 29, 2022 · 41 revisions

Class: MemoryDB

TodoList에 주입해서 사용 가능한 Memory를 이용하는 자체 DB 시스템 (ITodoListDataBase의 구현체)

클라이언트의 메모리를 사용하므로, 스크립트 종료 시 저장된 데이터는 휘발된다.

Class: IndexedDB

TodoList에 주입해서 사용 가능한 IndexedDB API DB 시스템 (ITodoListDataBase의 구현체)

클라이언트의 디스크를 사용하므로, 스크립트를 종료해도 사용자의 로컬 환경에 데이터를 저장하고, 이후 사용시 자동으로 저장된 데이터를 불러온다.

Type: PlainTodo

Todo의 정보만을 담고 있는 Plain 객체

Type: InputTodo

Todo의 입력을 위한 최소 프로퍼티 조건만을 가지고 있는 입력용 Type

Class: TodoList

new TodoList()

새로운 TodoList 클래스 인스턴스를 반환합니다.

new TodoList(todoArr, db)
  • 매개변수

    todoArr : Todo 객체들이 들어있는 배열

    db : Todo들의 정보를 저장하는 DB (ITodoListDataBase의 구현체)

  • 반환값

    TodoList 인스턴스

TodoList.getActiveTodo()

Active Todo (= 현재 실행해야 하는 Todo ) 객체를 반환합니다.

todoList.getActiveTodo()
  • 매개변수

    없음

  • 반환값

    Active Todo의 PlainTodo 객체

TodoList.getTodoById(id)

해당 id를 가지는 Todo를 반환합니다.

todoList.getTodoById(id)
  • 매개변수

    id : Todo의 id

  • 반환값

    Todo의 PlainTodo 객체 혹은 undefined

TodoList.postponeForToday()

Active Todo의 from 프로퍼티를 내일 00시 00분 00초로 변경하고, 해당 변경사항이 적용된 TodoList를 새로 반환합니다. 이 메서드를 호출하면 현재의 Active Todo의 상태가 From 값 변화에 따라 자동으로 WAIT으로 바뀌고, 다음날까지 다시는 todoList.getActiveTodo()로 반환되지 않습니다.

todoList.postponeForToday()
  • 매개변수

    없음

  • 반환값

    새로운 TodoList 인스턴스

TodoList.postponeTemporally()

Active Todo의 lastPostponed 값을 현재로 변경하고, 해당 변경사항이 적용된 TodoList를 새로 반환합니다. 이 메서드에 이어 todoList.getActiveTodo()를 호출하면, 기존의 Active Todo와 Deadline, Importance 값이 같은 다른 Todo가 반환됩니다.

todoList.postponeTemporally()
  • 매개변수

    없음

  • 반환값

    새로운 TodoList 인스턴스

TodoList.postponeDeadline()

Active Todo의 Deadline 값을 하루 증가시키고, 해당 변경사항이 적용된 TodoList를 새로 반환합니다.

todoList.postponeDeadline()
  • 매개변수

    없음

  • 반환값

    새로운 TodoList 인스턴스

TodoList.lowerImportance()

Active Todo의 Importance 값을 한단계 낮추고, 해당 변경사항이 적용된 TodoList를 새로 반환합니다. 만약 Importance 값이 이미 최저값이라면 아무런 변경도 이루어지지 않습니다.

todoList.lowerImportance()
  • 매개변수

    없음

  • 반환값

    새로운 TodoList 인스턴스

TodoList.setDone()

Active Todo의 상태를 DONE으로 변경하고, 해당 변경사항이 적용된 TodoList를 새로 반환합니다.

todoList.setDone()
  • 매개변수

    없음

  • 반환값

    새로운 TodoList 인스턴스

TodoList.updateElapsedTime()

updateElapsedTime() 메서드는 Active Todo의 ElapsedTime 값을 인자로 주어진 값으로 변경하고, 해당 변경사항이 적용된 TodoList를 새로 반환합니다.

todoList.updateElapsedTime(elapsedTime)
  • 매개변수

    elapsedTime : milliSecond로 표현된 Active Todo의 현재 소요시간

  • 반환값

    새로운 TodoList 인스턴스

TodoList.getSortedList()

getSortedList() 메서드는 인자로 넘긴 타입의 Todo들을 비교함수 배열 순서에 따라 정렬하여 배열에 담아 반환합니다.

todoList.getSortedList(type, compareArr)
  • 매개변수

    type : 반환할 Todo 배열의 목적 상태값. DONE, WAIT, READY 중 하나.

    compareArr : 반환한 Todo 배열의 정렬에 사용할 비교 함수의 이름(string)들이 들어있는 배열. index가 작은 비교함수가 더 우선순위가 높은 정렬 방식이 됩니다.

  • 반환값

    정렬된 Todo들의 PlainTodo 배열

TodoList.add()

add() 메서드는 인자로 전달된 todo 정보를 토대로 새로운 Todo 인스턴스를 생성하여 전체 Todo 배열에 삽입하고, 해당 변경사항이 적용된 TodoList를 새로 반환합니다.

todoList.add(todo)
  • 매개변수

    todo : 새로 생성할 todo의 정보를 담고 있는 객체.

  • 반환값

    새로운 TodoList 인스턴스

TodoList.edit()

edit() 메서드는 인자로 전달된 id의 Todo의 값들을 마찬가지로 인자로 전달한 todo 정보를 토대로 변경합니다. 이후 해당 변경사항이 적용된 TodoList를 새로 반환합니다.

todoList.edit(id, todo)
  • 매개변수

    id : 변경할 Todo의 id 값

    todo : 변경할 todo 정보를 담고 있는 객체.

  • 반환값

    새로운 TodoList 인스턴스

TodoList.remove()

인자로 전달된 id의 Todo를 TodoList에서 삭제합니다. 해당 Todo가 삭제된 새로운 TodoList를 반환합니다.

todoList.remove(id)
  • 매개변수

    id : 삭제할 Todo의 id 값

  • 반환값

    새로운 TodoList 인스턴스

TodoList.summary()

TodoList의 각종 메타데이터를 요약하여 객체로 반환합니다.

todoList.summary()
  • 매개변수

    없음

  • 반환값

    메타데이터가 담긴 객체

💊 비타500

📌 프로젝트

🐾 개발 일지

🥑 그룹활동

🌴 멘토링
🥕 데일리 스크럼
🍒 데일리 개인 회고
🐥 주간 회고
👯 발표 자료
Clone this wiki locally