-
Notifications
You must be signed in to change notification settings - Fork 7
시퀀스 다이어그램
yena edited this page Nov 14, 2022
·
2 revisions
sequenceDiagram
autonumber
participant A as index
participant B as books.routes
participant C as books.controller
participant D as books.service
participant E as database
A->>B: router.use()
B->>C: /info/search
C->>D: BooksService.searchInfo()
D->>E: category 조회
E-->>D: 결과 반환
D->>E: categoryList 조회
E-->>D: 결과 반환
D->>E: bookList 조회
E-->>D: 결과 반환
D->>E: totalItems 조회
E-->>D: 결과 반환
D->>D: meta 생성
D-->>C: bookList, categoryList, meta 반환
alt Pass
C-->>B: 도서 조회 결과 반환
else Except
alt errorNumber >= 300 && errorNumber < 400
C-->>B: 에러 메시지 및 BAD_REQUEST 반환
else error.message === 'DB error'
C-->>B: 에러 메시지 및 INTERNAL_SERVER_ERROR 반환
end
end
sequenceDiagram
autonumber
participant A as index
participant B as books.routes
participant C as books.controller
participant D as books.service
participant E as database
A->>B: router.use()
B->>C: /info
opt !(sort && limit)
C-->>B: INVALID_INPUT, BAD_REQUEST 반환
end
C->>D: BookService.sortInfo()
D->>E: bookList 조회
E-->>D: 결과 반환
D-->>C: bookList 반환
alt Pass
C-->>B: 도서 목록 반환
else Except
alt errorNumber >= 300 && errorNumber < 400
C-->>B: 에러 메시지 및 BAD_REQUEST 반환
else error.message === 'DB error'
C-->>B: QUERY_EXECUTION_FAILED 및 INTERNAL_SERVER_ERROR 반환
else Extra
C-->>B: UNKNOWN_ERROR, INTERNAL_SERVER_ERROR 반환
end
end
sequenceDiagram
autonumber
participant A as index
participant B as books.routes
participant C as books.controller
participant D as books.service
participant E as database
A->>B: router.use()
B->>C: /info/:id
opt Number.isNaN(id)
C-->>B: INVALID_INPUT, BAD_REQUEST 반환
end
C->>D: BookService.getInfo()
D->>E: bookInfo 조회
E-->>D: 결과 반환
opt bookInfo == undefined
D-->>C: throw Error NO_BOOK_INFO_ID
end
D->>E: eachBooks 조회
E-->>D: 결과 반환
D->>E: 예약 여부 조회
E-->>D: 결과 반환
opt !비치 중 && 대출 가능
D->>E: dueDate 조회
E-->>D: 결과 반환
end
D->>C: 도서 목록 반환
alt Pass
C-->>B: 도서 목록 반환
else Except
alt errorNumber >= 300 && errorNumber < 400
C-->>B: 에러 메시지 및 BAD_REQUEST 반환
else error.message === 'DB error'
C-->>B: QUERY_EXECUTION_FAILED 및 INTERNAL_SERVER_ERROR 반환
else Extra
C-->>B: UNKNOWN_ERROR, INTERNAL_SERVER_ERROR 반환
end
end
sequenceDiagram
autonumber
participant A as index
participant B as books.routes
participant C as books.controller
participant D as books.service
participant E as database
A->>B: router.use()
B->>C: /search
opt query === 'undefined' || Number.isNaN(page) || Number.isNaN(limit)
C-->>B: INVALID_INPUT, BAD_REQUEST 반환
end
C->>D: BooksService.search()
D->>E: bookList 조회
E-->>D: 결과 반환
D->>E: totalItems 조회
E-->>D: 결과 반환
D->>D: meta 생성
D-->>C: bookList, meta 반환
alt Pass
C-->>B: 도서 목록 반환
else Except
alt errorNumber >= 300 && errorNumber < 400
C-->>B: 에러 메시지 및 BAD_REQUEST 반환
else error.message === 'DB error'
C-->>B: QUERY_EXECUTION_FAILED 및 INTERNAL_SERVER_ERROR 반환
else Extra
C-->>B: UNKNOWN_ERROR, INTERNAL_SERVER_ERROR 반환
end
end