Skip to content

시퀀스 다이어그램

yena edited this page Nov 14, 2022 · 2 revisions

Auth

Books

/api/books/info/search

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
Loading

/api/books/info

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
Loading

/api/books/info/{id}

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
Loading

/api/books/search

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
Loading

Likes

Histories

Lendings

Reservations

Reviews

Users