Skip to content

TodoList API

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

Class: MemoryDB

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

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

new MemoryDB()

Memory DB를 생성한다. 인자 없이 생성할 수도 있으나, PlainTodo 배열을 인자로 넘기면 해당 인자값을 기본적으로 저장하고 있는 DB를 반환한다.

new MemoryDB([,todoList])
  • 매개변수

    todoList : (optional) 초기값으로 대입할 todo들 정보가 들어있는 PlainTodo 배열

  • 반환값

    TodoList 인스턴스

Class: IndexedDBFactory, IndexedDB

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

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

new IndexedDBFactory()

IndexedDBFactory.createDB()

new IndexedDB()

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