From c339ea625b3de9880f7d51b2a68cf870847e3efc Mon Sep 17 00:00:00 2001 From: junseokNoh Date: Fri, 13 Aug 2021 02:44:21 +0900 Subject: [PATCH] #9 set write Reply Request Api --- KNU_CSE/KNU_CSE.xcodeproj/project.pbxproj | 32 ++++- KNU_CSE/KNU_CSE/Custom/Cell/ReplyCell.swift | 4 +- .../Custom/Delegate/DataDelegate.swift | 4 + KNU_CSE/KNU_CSE/Custom/View/CommentView.swift | 101 ++++++++++++++ .../Main Tab/Board/Reply/ReplyViewModel.swift | 87 ------------ .../{ => View}/FindPw/FindPwView.swift | 0 .../FindPw/FindPwViewModel+Model.swift | 0 .../Main}/Board/Board/BoardModel.swift | 0 .../Main}/Board/Board/BoardView.swift | 0 .../Main}/Board/Board/BoardViewModel.swift | 0 .../Board/BoardDetail/BoardDetailModel.swift | 24 +--- .../Board/BoardDetail/BoardDetailView.swift | 132 +++++------------- .../BoardDetail/BoardDetailViewModel.swift | 1 - .../Board/BoardSearch/BoardSearchView.swift | 0 .../BoardSearchViewModel+Model.swift | 0 .../Main}/Board/BoardTabView.swift | 0 .../Board/BoardWrite/BoardWriteView.swift | 0 .../BoardWriteViewModel+Model.swift | 0 .../Main}/Board/Reply/ReplyView.swift | 83 ++++++----- .../Main/Board/Reply/ReplyViewModel.swift | 60 ++++++++ .../ClassRoom/ClassRoomModel.swift | 0 .../ClassRoom/ClassRoomView.swift | 0 .../ClassRoom/ClassRoomViewModel.swift | 0 .../Reservation/ReservationModel.swift | 0 .../Reservation/ReservationView.swift | 0 .../Reservation/ReservationViewModel.swift | 0 .../Reservation/SeatPicView.swift | 0 .../Reservation/testImage.jpeg | Bin .../SeatReservationView.swift | 0 .../Main}/KNU Notice /NoticeView.swift | 0 .../MyPage/AppSetting/AppSettingCell.swift | 0 .../MyPage/AppSetting/AppSettingView.swift | 0 .../Main}/MyPage/EditPw/EditPwView.swift | 0 .../MyPage/EditPw/EditPwViewModel+Model.swift | 0 .../Main}/MyPage/MyPageModel.swift | 0 .../Main}/MyPage/MyPageView.swift | 0 .../Main}/MyPage/MyPageViewModel.swift | 0 .../ReservationHistModel.swift | 0 .../ReservationList/ReservationHistView.swift | 0 .../ReservationHistViewModel.swift | 0 .../MyPage/UserInfrom/Photo/PhotoView.swift | 0 .../MyPage/UserInfrom/UserInformView.swift | 0 .../UserInformViewModel+Model.swift | 0 .../WrittenBoardListView.swift | 0 .../ReservationCheckModel.swift | 0 .../ReservationCheckView.swift | 0 .../ReservationCheckViewModel.swift | 0 .../{Main Tab => View/Main}/TabView.swift | 0 .../{ => View}/SignIn/SignInModel.swift | 0 .../SignIn/SignInNavigationView.swift | 0 .../{ => View}/SignIn/SignInView.swift | 0 .../{ => View}/SignIn/SignInViewModel.swift | 0 .../{ => View}/SignUp/SignUpModel.swift | 0 .../{ => View}/SignUp/SignUpView.swift | 0 .../{ => View}/SignUp/SignUpViewModel.swift | 0 55 files changed, 278 insertions(+), 250 deletions(-) create mode 100644 KNU_CSE/KNU_CSE/Custom/View/CommentView.swift delete mode 100644 KNU_CSE/KNU_CSE/Main Tab/Board/Reply/ReplyViewModel.swift rename KNU_CSE/KNU_CSE/{ => View}/FindPw/FindPwView.swift (100%) rename KNU_CSE/KNU_CSE/{ => View}/FindPw/FindPwViewModel+Model.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/Board/BoardModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/Board/BoardView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/Board/BoardViewModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/BoardDetail/BoardDetailModel.swift (76%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/BoardDetail/BoardDetailView.swift (83%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/BoardDetail/BoardDetailViewModel.swift (98%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/BoardSearch/BoardSearchView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/BoardSearch/BoardSearchViewModel+Model.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/BoardTabView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/BoardWrite/BoardWriteView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/BoardWrite/BoardWriteViewModel+Model.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Board/Reply/ReplyView.swift (83%) create mode 100644 KNU_CSE/KNU_CSE/View/Main/Board/Reply/ReplyViewModel.swift rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/ClassRoom/ClassRoomModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/ClassRoom/ClassRoomView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/ClassRoom/ClassRoomViewModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/Reservation/ReservationModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/Reservation/ReservationView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/Reservation/ReservationViewModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/Reservation/SeatPicView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/Reservation/testImage.jpeg (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/Classroom Reservation/SeatReservationView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/KNU Notice /NoticeView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/AppSetting/AppSettingCell.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/AppSetting/AppSettingView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/EditPw/EditPwView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/EditPw/EditPwViewModel+Model.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/MyPageModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/MyPageView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/MyPageViewModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/ReservationList/ReservationHistModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/ReservationList/ReservationHistView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/ReservationList/ReservationHistViewModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/UserInfrom/Photo/PhotoView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/UserInfrom/UserInformView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/UserInfrom/UserInformViewModel+Model.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/MyPage/WrittenBoardList/WrittenBoardListView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/ReservationCheck/ReservationCheckModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/ReservationCheck/ReservationCheckView.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/ReservationCheck/ReservationCheckViewModel.swift (100%) rename KNU_CSE/KNU_CSE/{Main Tab => View/Main}/TabView.swift (100%) rename KNU_CSE/KNU_CSE/{ => View}/SignIn/SignInModel.swift (100%) rename KNU_CSE/KNU_CSE/{ => View}/SignIn/SignInNavigationView.swift (100%) rename KNU_CSE/KNU_CSE/{ => View}/SignIn/SignInView.swift (100%) rename KNU_CSE/KNU_CSE/{ => View}/SignIn/SignInViewModel.swift (100%) rename KNU_CSE/KNU_CSE/{ => View}/SignUp/SignUpModel.swift (100%) rename KNU_CSE/KNU_CSE/{ => View}/SignUp/SignUpView.swift (100%) rename KNU_CSE/KNU_CSE/{ => View}/SignUp/SignUpViewModel.swift (100%) diff --git a/KNU_CSE/KNU_CSE.xcodeproj/project.pbxproj b/KNU_CSE/KNU_CSE.xcodeproj/project.pbxproj index 3aec3ba..51428b5 100644 --- a/KNU_CSE/KNU_CSE.xcodeproj/project.pbxproj +++ b/KNU_CSE/KNU_CSE.xcodeproj/project.pbxproj @@ -47,6 +47,7 @@ 681D382026ADAE85000D9FE8 /* ReplyViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681D381F26ADAE85000D9FE8 /* ReplyViewModel.swift */; }; 681D382326ADC5D4000D9FE8 /* BoardSearchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681D382226ADC5D4000D9FE8 /* BoardSearchView.swift */; }; 681D382626ADC61D000D9FE8 /* BoardWriteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681D382526ADC61D000D9FE8 /* BoardWriteView.swift */; }; + 686889C626C55F6800486985 /* CommentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 686889C526C55F6800486985 /* CommentView.swift */; }; 68C7629126B96EFA00792498 /* CategoryCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C7629026B96EFA00792498 /* CategoryCell.swift */; }; 68C7629326B99F7F00792498 /* ResponseBody.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C7629226B99F7F00792498 /* ResponseBody.swift */; }; 68C7629626BC0CAE00792498 /* BaseViewModelChange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68C7629526BC0CAE00792498 /* BaseViewModelChange.swift */; }; @@ -166,6 +167,7 @@ 681D381F26ADAE85000D9FE8 /* ReplyViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplyViewModel.swift; sourceTree = ""; }; 681D382226ADC5D4000D9FE8 /* BoardSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoardSearchView.swift; sourceTree = ""; }; 681D382526ADC61D000D9FE8 /* BoardWriteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoardWriteView.swift; sourceTree = ""; }; + 686889C526C55F6800486985 /* CommentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommentView.swift; sourceTree = ""; }; 68C7629026B96EFA00792498 /* CategoryCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CategoryCell.swift; sourceTree = ""; }; 68C7629226B99F7F00792498 /* ResponseBody.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResponseBody.swift; sourceTree = ""; }; 68C7629526BC0CAE00792498 /* BaseViewModelChange.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseViewModelChange.swift; sourceTree = ""; }; @@ -413,6 +415,25 @@ path = BoardWrite; sourceTree = ""; }; + 686889C326C5524400486985 /* View */ = { + isa = PBXGroup; + children = ( + 68F1A5FA26A01028007B4B86 /* SignIn */, + 68F1A5F026A0090B007B4B86 /* SignUp */, + 68F861E426B2EE9100934BD2 /* FindPw */, + 68F1A61026A31169007B4B86 /* Main */, + ); + path = View; + sourceTree = ""; + }; + 686889C426C55F4900486985 /* View */ = { + isa = PBXGroup; + children = ( + 686889C526C55F6800486985 /* CommentView.swift */, + ); + path = View; + sourceTree = ""; + }; 68C7629426BC0CA200792498 /* Base */ = { isa = PBXGroup; children = ( @@ -467,10 +488,7 @@ children = ( 68F1A5F426A0090B007B4B86 /* Custom */, 68F1A60126A0A72D007B4B86 /* Color */, - 68F1A5FA26A01028007B4B86 /* SignIn */, - 68F1A5F026A0090B007B4B86 /* SignUp */, - 68F861E426B2EE9100934BD2 /* FindPw */, - 68F1A61026A31169007B4B86 /* Main Tab */, + 686889C326C5524400486985 /* View */, 68F1A5E726A008FF007B4B86 /* Network Service */, 68F1A5B726A0088B007B4B86 /* AppDelegate.swift */, 68F1A5B926A0088B007B4B86 /* SceneDelegate.swift */, @@ -524,6 +542,7 @@ 68F1A5F426A0090B007B4B86 /* Custom */ = { isa = PBXGroup; children = ( + 686889C426C55F4900486985 /* View */, 68C762A926C4222F00792498 /* Observable */, 681D37CB26A47FC7000D9FE8 /* Delegate */, 681D37C226A4542F000D9FE8 /* Cell */, @@ -596,7 +615,7 @@ path = Alert; sourceTree = ""; }; - 68F1A61026A31169007B4B86 /* Main Tab */ = { + 68F1A61026A31169007B4B86 /* Main */ = { isa = PBXGroup; children = ( 68D5448F26A40E220072C2A4 /* KNU Notice */, @@ -606,7 +625,7 @@ 681D37B326A413AD000D9FE8 /* MyPage */, 68F1A61126A3120D007B4B86 /* TabView.swift */, ); - path = "Main Tab"; + path = Main; sourceTree = ""; }; 68F1A61526A344E2007B4B86 /* KeyChain */ = { @@ -984,6 +1003,7 @@ 68F1A61226A3120D007B4B86 /* TabView.swift in Sources */, 68F1A5BA26A0088B007B4B86 /* SceneDelegate.swift in Sources */, 68C7629A26BC403700792498 /* BaseAction.swift in Sources */, + 686889C626C55F6800486985 /* CommentView.swift in Sources */, 681D380F26A9FC51000D9FE8 /* CommentCell.swift in Sources */, 68F1A5F626A0090B007B4B86 /* SignUpModel.swift in Sources */, 681D381E26ADAC4F000D9FE8 /* ReplyView.swift in Sources */, diff --git a/KNU_CSE/KNU_CSE/Custom/Cell/ReplyCell.swift b/KNU_CSE/KNU_CSE/Custom/Cell/ReplyCell.swift index 318acbb..576c82c 100644 --- a/KNU_CSE/KNU_CSE/Custom/Cell/ReplyCell.swift +++ b/KNU_CSE/KNU_CSE/Custom/Cell/ReplyCell.swift @@ -63,9 +63,9 @@ class ReplyCell : UIView { } } - var reply:Reply + var reply:Comment - init(reply:Reply) { + init(reply:Comment) { self.reply = reply super.init(frame: CGRect()) self.setImage() diff --git a/KNU_CSE/KNU_CSE/Custom/Delegate/DataDelegate.swift b/KNU_CSE/KNU_CSE/Custom/Delegate/DataDelegate.swift index 3c37fda..3e6d140 100644 --- a/KNU_CSE/KNU_CSE/Custom/Delegate/DataDelegate.swift +++ b/KNU_CSE/KNU_CSE/Custom/Delegate/DataDelegate.swift @@ -14,3 +14,7 @@ protocol BoardDataDelegate{ protocol CommentDataDelegate { func sendComment(board:Board, comment:Comment) } + +protocol ReplyDataDelegate{ + func sendReply(replys:[Comment]) +} diff --git a/KNU_CSE/KNU_CSE/Custom/View/CommentView.swift b/KNU_CSE/KNU_CSE/Custom/View/CommentView.swift new file mode 100644 index 0000000..1cd18e0 --- /dev/null +++ b/KNU_CSE/KNU_CSE/Custom/View/CommentView.swift @@ -0,0 +1,101 @@ +// +// CommentView.swift +// KNU_CSE +// +// Created by junseok on 2021/08/12. +// + +import UIKit +import Foundation + +class CommentView: UIStackView { + + var delegate:CommentDataDelegate? + var storyboard:UIStoryboard? + var navigationVC:UINavigationController? + var isHiddenReplyBtn:Bool + + init(storyboard:UIStoryboard?, navigationVC:UINavigationController?, isHiddenReplyBtn:Bool){ + self.storyboard = storyboard + self.navigationVC = navigationVC + self.isHiddenReplyBtn = isHiddenReplyBtn + super.init(frame: CGRect.zero) + } + + required init(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + /// StackView에 CommentCell, ReplyCell 추가 + func InitToStackView(comments:[Comment], board:Board){ + for i in 0.. 0 else{ + return + } + + for comment in Comments{ + targetIndex += 1 + if comment.commentId == replys[0].parentId{ + if let replyList = comment.replyList{ + targetIndex += replyList.count + targetIndex -= replys.count + } + + for reply in replys{ + insertReplyToStackView(reply: reply, index: targetIndex) + targetIndex += 1 + } + break + } + } + } +} + +extension CommentView{ + func pushView(_ board:Board, _ comment:Comment){ + let pushVC = self.storyboard?.instantiateViewController(withIdentifier: "ReplyView") as? ReplyView + self.navigationVC?.pushViewController(pushVC!, animated: true) + self.delegate = pushVC + self.delegate?.sendComment(board:board, comment: comment) + } +} diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/Reply/ReplyViewModel.swift b/KNU_CSE/KNU_CSE/Main Tab/Board/Reply/ReplyViewModel.swift deleted file mode 100644 index 3bb5d14..0000000 --- a/KNU_CSE/KNU_CSE/Main Tab/Board/Reply/ReplyViewModel.swift +++ /dev/null @@ -1,87 +0,0 @@ -// -// ReplyViewModel.swift -// KNU_CSE -// -// Created by junseok on 2021/07/25. -// - -import Foundation - - -struct ReplyViewModel{ - var writeReplyListener:BaseAction = BaseAction() - - var board:Board! - var comment:Comment? - var reply:ReplyTextModel = ReplyTextModel() - var listener:((String)->Void)? - - init(){ - - } - - mutating func bind(listener:((String)->Void)?) { - self.listener = listener - } - - func sendReply(){ - - } -} - -extension ReplyViewModel{ - public func writeReplyRequest() { - self.reply.boardId = board.boardId - self.reply.commentId = comment?.commentId - - let request = Request(requestBodyObject: self.reply, requestMethod: .post, enviroment: .writeReply) - request.sendRequest(request: request, responseType: ReplyTextModel.self, errorType: errorHandler.self, action:self.writeReplyListener) - } -} - -class ReplyTextModel:BaseObject{ - var boardId:Int! - var commentId:Int! - var content:String! - - override func encode(to encoder: Encoder) throws { - var container = encoder.container(keyedBy: CodingKeys.self) - try container.encode(boardId, forKey: .boardId) - try container.encode(commentId, forKey: .commentId) - try container.encode(content, forKey: .content) - try super.encode(to: encoder) - } - - enum CodingKeys: CodingKey { - case boardId,commentId, content - } -} - -class ReplyResponse:BaseObject{ - var author: String - var boardId: Int - var commentId: Int - var content: String - var parentId:Int - var replyList:[Reply]! - var time: String - - var image:String! - - required init(from decoder: Decoder) throws { - let container = try decoder.container(keyedBy: CodingKeys.self) - self.author = (try? container.decode(String.self, forKey: .author)) ?? "" - self.boardId = (try? container.decode(Int.self, forKey: .boardId)) ?? 0 - self.commentId = (try? container.decode(Int.self, forKey: .commentId)) ?? 0 - self.content = (try? container.decode(String.self, forKey: .content)) ?? "" - self.parentId = (try? container.decode(Int.self, forKey: .parentId)) ?? 0 - self.replyList = (try? container.decode([Reply].self, forKey: .replyList)) - self.time = (try? container.decode(String.self, forKey: .time)) ?? "" - self.image = (try? container.decode(String.self, forKey: .image)) ?? "" - super.init() - } - - enum CodingKeys: CodingKey { - case boardId, commentId, parentId, author, content, time, image, replyList - } -} diff --git a/KNU_CSE/KNU_CSE/FindPw/FindPwView.swift b/KNU_CSE/KNU_CSE/View/FindPw/FindPwView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/FindPw/FindPwView.swift rename to KNU_CSE/KNU_CSE/View/FindPw/FindPwView.swift diff --git a/KNU_CSE/KNU_CSE/FindPw/FindPwViewModel+Model.swift b/KNU_CSE/KNU_CSE/View/FindPw/FindPwViewModel+Model.swift similarity index 100% rename from KNU_CSE/KNU_CSE/FindPw/FindPwViewModel+Model.swift rename to KNU_CSE/KNU_CSE/View/FindPw/FindPwViewModel+Model.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/Board/BoardModel.swift b/KNU_CSE/KNU_CSE/View/Main/Board/Board/BoardModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Board/Board/BoardModel.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/Board/BoardModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/Board/BoardView.swift b/KNU_CSE/KNU_CSE/View/Main/Board/Board/BoardView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Board/Board/BoardView.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/Board/BoardView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/Board/BoardViewModel.swift b/KNU_CSE/KNU_CSE/View/Main/Board/Board/BoardViewModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Board/Board/BoardViewModel.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/Board/BoardViewModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardDetail/BoardDetailModel.swift b/KNU_CSE/KNU_CSE/View/Main/Board/BoardDetail/BoardDetailModel.swift similarity index 76% rename from KNU_CSE/KNU_CSE/Main Tab/Board/BoardDetail/BoardDetailModel.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/BoardDetail/BoardDetailModel.swift index 32f5203..bf92e93 100644 --- a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardDetail/BoardDetailModel.swift +++ b/KNU_CSE/KNU_CSE/View/Main/Board/BoardDetail/BoardDetailModel.swift @@ -14,7 +14,7 @@ class Comment:BaseObject{ var author:String! var content:String! var time:String! - var replyList:[Reply]! + var replyList:[Comment]! var image:String! @@ -36,7 +36,7 @@ class Comment:BaseObject{ self.content = (try? container.decode(String.self, forKey: .content)) ?? "" self.time = (try? container.decode(String.self, forKey: .time)) ?? "" self.image = (try? container.decode(String.self, forKey: .image)) ?? "" - self.replyList = (try? container.decode([Reply].self, forKey: .replyList)) + self.replyList = (try? container.decode([Comment].self, forKey: .replyList)) ?? [] super.init() } @@ -46,26 +46,6 @@ class Comment:BaseObject{ } -struct Reply:Codable{ - var boardId:Int! - var commentId:Int - var parentId:Int! - var author:String! - var content:String! - var time:String! - var replyList:[Reply]! - - var image:String! - - init(image:String, commentId:Int, content:String, time:String, author:String) { - self.image = image - self.commentId = commentId - self.content = content - self.time = time - self.author = author - } -} - class CommentTextModel:BaseObject{ var boardId:Int! var content:String! diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardDetail/BoardDetailView.swift b/KNU_CSE/KNU_CSE/View/Main/Board/BoardDetail/BoardDetailView.swift similarity index 83% rename from KNU_CSE/KNU_CSE/Main Tab/Board/BoardDetail/BoardDetailView.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/BoardDetail/BoardDetailView.swift index 8b4eafe..1ae5b3e 100644 --- a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardDetail/BoardDetailView.swift +++ b/KNU_CSE/KNU_CSE/View/Main/Board/BoardDetail/BoardDetailView.swift @@ -7,7 +7,7 @@ import UIKit -class BoardDetailView:BaseUIViewController, ViewProtocol, BoardDataDelegate{ +class BoardDetailView:BaseUIViewController, ViewProtocol{ var selectedView:CommentCell? = nil @@ -117,13 +117,13 @@ class BoardDetailView:BaseUIViewController, ViewProtocol, BoardDataDelegate{ } } - var stackView:UIStackView!{ + var stackView:CommentView!{ didSet{ self.stackView.axis = .vertical self.stackView.distribution = .fill } } - + var textFieldView:UIView!{ didSet{ textFieldView.backgroundColor = .white @@ -190,12 +190,13 @@ class BoardDetailView:BaseUIViewController, ViewProtocol, BoardDataDelegate{ self.BindingGetBoard() self.BindingGetComment() self.BindingWriteComment() + + self.boardDetailViewModel.getCommentRequest() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.boardDetailViewModel.getBoardRequest() - self.boardDetailViewModel.getCommentRequest() } func initUI(){ @@ -210,7 +211,7 @@ class BoardDetailView:BaseUIViewController, ViewProtocol, BoardDataDelegate{ self.commentImage = UIImageView() self.commentLabel = UILabel() - self.stackView = UIStackView() + self.stackView = CommentView(storyboard: self.storyboard!, navigationVC: self.navigationController!, isHiddenReplyBtn: false) self.textFieldView = UIView() self.borderLine = UIView() @@ -343,91 +344,21 @@ class BoardDetailView:BaseUIViewController, ViewProtocol, BoardDataDelegate{ } } - -extension BoardDetailView{ - +extension BoardDetailView:BoardDataDelegate, ReplyDataDelegate{ /// BoardView로 부터의 Delegation을 전달받음 func sendBoard(board: Board) { self.boardDetailViewModel.board.value = board } - /// StackView에 CommentCell, ReplyCell 추가 - func InitToStackView(){ - for i in 0.. = Observable(Board(image: "", boardId: 0, category: "", title: "", content: "", author: "", time: "", commentCnt: 0)) - var oldcomments:[Comment]! var comments:[Comment] = [] var comment:CommentTextModel = CommentTextModel() var listener:((String)->Void)? diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardSearch/BoardSearchView.swift b/KNU_CSE/KNU_CSE/View/Main/Board/BoardSearch/BoardSearchView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Board/BoardSearch/BoardSearchView.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/BoardSearch/BoardSearchView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardSearch/BoardSearchViewModel+Model.swift b/KNU_CSE/KNU_CSE/View/Main/Board/BoardSearch/BoardSearchViewModel+Model.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Board/BoardSearch/BoardSearchViewModel+Model.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/BoardSearch/BoardSearchViewModel+Model.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardTabView.swift b/KNU_CSE/KNU_CSE/View/Main/Board/BoardTabView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Board/BoardTabView.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/BoardTabView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardWrite/BoardWriteView.swift b/KNU_CSE/KNU_CSE/View/Main/Board/BoardWrite/BoardWriteView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Board/BoardWrite/BoardWriteView.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/BoardWrite/BoardWriteView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/BoardWrite/BoardWriteViewModel+Model.swift b/KNU_CSE/KNU_CSE/View/Main/Board/BoardWrite/BoardWriteViewModel+Model.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Board/BoardWrite/BoardWriteViewModel+Model.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/BoardWrite/BoardWriteViewModel+Model.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Board/Reply/ReplyView.swift b/KNU_CSE/KNU_CSE/View/Main/Board/Reply/ReplyView.swift similarity index 83% rename from KNU_CSE/KNU_CSE/Main Tab/Board/Reply/ReplyView.swift rename to KNU_CSE/KNU_CSE/View/Main/Board/Reply/ReplyView.swift index 6900f12..a08ee43 100644 --- a/KNU_CSE/KNU_CSE/Main Tab/Board/Reply/ReplyView.swift +++ b/KNU_CSE/KNU_CSE/View/Main/Board/Reply/ReplyView.swift @@ -7,9 +7,11 @@ import UIKit -class ReplyView:BaseUIViewController, ViewProtocol, CommentDataDelegate{ +class ReplyView:BaseUIViewController, ViewProtocol{ - var selectedView:CommentCell? = nil + //var selectedView:CommentCell? = nil + + var delegate:ReplyDataDelegate? var replyViewModel = ReplyViewModel() @@ -28,11 +30,11 @@ class ReplyView:BaseUIViewController, ViewProtocol, CommentDataDelegate{ var boardContentView:UIView = UIView() - var stackView:UIStackView!{ + var stackView:CommentView!{ didSet{ stackView.axis = .vertical stackView.distribution = .fill - addToStackView() + stackView.InitToStackView(comments: [self.replyViewModel.comment.value], board: self.replyViewModel.board) } } @@ -89,11 +91,6 @@ class ReplyView:BaseUIViewController, ViewProtocol, CommentDataDelegate{ } } - override func viewWillAppear(_ animated: Bool) { - self.setNavigationTitle(title: "답글달기") - self.hideBackTitle() - } - override func viewDidLoad() { self.initUI() self.addView() @@ -104,10 +101,22 @@ class ReplyView:BaseUIViewController, ViewProtocol, CommentDataDelegate{ self.BindingWriteReply() } + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + self.setNavigationTitle(title: "답글달기") + self.hideBackTitle() + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + print("will disapper") + self.sendReplyToParent(replys: self.replyViewModel.replys) + } + func initUI(){ scrollView = UIScrollView() - stackView = UIStackView() + stackView = CommentView(storyboard: nil, navigationVC: nil, isHiddenReplyBtn: true) textFieldView = UIView() borderLine = UIView() @@ -188,35 +197,25 @@ class ReplyView:BaseUIViewController, ViewProtocol, CommentDataDelegate{ } -extension ReplyView{ +extension ReplyView:CommentDataDelegate{ /// BoardDetailView로 부터의 Delegation을 전달받음 func sendComment(board:Board, comment: Comment) { self.replyViewModel.board = board - self.replyViewModel.comment = comment + self.replyViewModel.comment.value = comment } - /// StackView에 CommentCell, ReplyCell 추가 - func addToStackView(){ - guard let comment = self.replyViewModel.comment else { - return - } - - let commentView = CommentCell(comment: comment) - commentView.replyBtn.isHidden = true - commentView.replyBtn.addAction { - - } - stackView.addArrangedSubview(commentView) - if let replyList = comment.replyList { - for j in 0.. = BaseAction() + + var board:Board! + var comment:Observable = Observable(Comment(image: "", commentId: 0, content: "", time: "", author: "")) + + var replys:[Comment] = [] + var replyBody:ReplyTextModel = ReplyTextModel() + var listener:((String)->Void)? + + init(){ + + } + + mutating func bind(listener:((String)->Void)?) { + self.listener = listener + } + + mutating func addReply(reply:Comment){ + self.comment.value.replyList.append(reply) + } +} + +extension ReplyViewModel{ + public func writeReplyRequest() { + self.replyBody.boardId = board.boardId + self.replyBody.commentId = comment.value.commentId + + let request = Request(requestBodyObject: self.replyBody, requestMethod: .post, enviroment: .writeReply) + request.sendRequest(request: request, responseType: Comment.self, errorType: errorHandler.self, action:self.writeReplyListener) + } +} + +class ReplyTextModel:BaseObject{ + var boardId:Int! + var commentId:Int! + var content:String! + + override func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(boardId, forKey: .boardId) + try container.encode(commentId, forKey: .commentId) + try container.encode(content, forKey: .content) + try super.encode(to: encoder) + } + + enum CodingKeys: CodingKey { + case boardId,commentId, content + } +} diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/ClassRoom/ClassRoomModel.swift b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/ClassRoom/ClassRoomModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/ClassRoom/ClassRoomModel.swift rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/ClassRoom/ClassRoomModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/ClassRoom/ClassRoomView.swift b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/ClassRoom/ClassRoomView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/ClassRoom/ClassRoomView.swift rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/ClassRoom/ClassRoomView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/ClassRoom/ClassRoomViewModel.swift b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/ClassRoom/ClassRoomViewModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/ClassRoom/ClassRoomViewModel.swift rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/ClassRoom/ClassRoomViewModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/ReservationModel.swift b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/ReservationModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/ReservationModel.swift rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/ReservationModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/ReservationView.swift b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/ReservationView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/ReservationView.swift rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/ReservationView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/ReservationViewModel.swift b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/ReservationViewModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/ReservationViewModel.swift rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/ReservationViewModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/SeatPicView.swift b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/SeatPicView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/SeatPicView.swift rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/SeatPicView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/testImage.jpeg b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/testImage.jpeg similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/Reservation/testImage.jpeg rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/Reservation/testImage.jpeg diff --git a/KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/SeatReservationView.swift b/KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/SeatReservationView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/Classroom Reservation/SeatReservationView.swift rename to KNU_CSE/KNU_CSE/View/Main/Classroom Reservation/SeatReservationView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/KNU Notice /NoticeView.swift b/KNU_CSE/KNU_CSE/View/Main/KNU Notice /NoticeView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/KNU Notice /NoticeView.swift rename to KNU_CSE/KNU_CSE/View/Main/KNU Notice /NoticeView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/AppSetting/AppSettingCell.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/AppSetting/AppSettingCell.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/AppSetting/AppSettingCell.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/AppSetting/AppSettingCell.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/AppSetting/AppSettingView.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/AppSetting/AppSettingView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/AppSetting/AppSettingView.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/AppSetting/AppSettingView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/EditPw/EditPwView.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/EditPw/EditPwView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/EditPw/EditPwView.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/EditPw/EditPwView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/EditPw/EditPwViewModel+Model.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/EditPw/EditPwViewModel+Model.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/EditPw/EditPwViewModel+Model.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/EditPw/EditPwViewModel+Model.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/MyPageModel.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/MyPageModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/MyPageModel.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/MyPageModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/MyPageView.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/MyPageView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/MyPageView.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/MyPageView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/MyPageViewModel.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/MyPageViewModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/MyPageViewModel.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/MyPageViewModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/ReservationList/ReservationHistModel.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/ReservationList/ReservationHistModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/ReservationList/ReservationHistModel.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/ReservationList/ReservationHistModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/ReservationList/ReservationHistView.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/ReservationList/ReservationHistView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/ReservationList/ReservationHistView.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/ReservationList/ReservationHistView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/ReservationList/ReservationHistViewModel.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/ReservationList/ReservationHistViewModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/ReservationList/ReservationHistViewModel.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/ReservationList/ReservationHistViewModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/UserInfrom/Photo/PhotoView.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/UserInfrom/Photo/PhotoView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/UserInfrom/Photo/PhotoView.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/UserInfrom/Photo/PhotoView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/UserInfrom/UserInformView.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/UserInfrom/UserInformView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/UserInfrom/UserInformView.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/UserInfrom/UserInformView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/UserInfrom/UserInformViewModel+Model.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/UserInfrom/UserInformViewModel+Model.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/UserInfrom/UserInformViewModel+Model.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/UserInfrom/UserInformViewModel+Model.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/MyPage/WrittenBoardList/WrittenBoardListView.swift b/KNU_CSE/KNU_CSE/View/Main/MyPage/WrittenBoardList/WrittenBoardListView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/MyPage/WrittenBoardList/WrittenBoardListView.swift rename to KNU_CSE/KNU_CSE/View/Main/MyPage/WrittenBoardList/WrittenBoardListView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/ReservationCheck/ReservationCheckModel.swift b/KNU_CSE/KNU_CSE/View/Main/ReservationCheck/ReservationCheckModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/ReservationCheck/ReservationCheckModel.swift rename to KNU_CSE/KNU_CSE/View/Main/ReservationCheck/ReservationCheckModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/ReservationCheck/ReservationCheckView.swift b/KNU_CSE/KNU_CSE/View/Main/ReservationCheck/ReservationCheckView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/ReservationCheck/ReservationCheckView.swift rename to KNU_CSE/KNU_CSE/View/Main/ReservationCheck/ReservationCheckView.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/ReservationCheck/ReservationCheckViewModel.swift b/KNU_CSE/KNU_CSE/View/Main/ReservationCheck/ReservationCheckViewModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/ReservationCheck/ReservationCheckViewModel.swift rename to KNU_CSE/KNU_CSE/View/Main/ReservationCheck/ReservationCheckViewModel.swift diff --git a/KNU_CSE/KNU_CSE/Main Tab/TabView.swift b/KNU_CSE/KNU_CSE/View/Main/TabView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/Main Tab/TabView.swift rename to KNU_CSE/KNU_CSE/View/Main/TabView.swift diff --git a/KNU_CSE/KNU_CSE/SignIn/SignInModel.swift b/KNU_CSE/KNU_CSE/View/SignIn/SignInModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/SignIn/SignInModel.swift rename to KNU_CSE/KNU_CSE/View/SignIn/SignInModel.swift diff --git a/KNU_CSE/KNU_CSE/SignIn/SignInNavigationView.swift b/KNU_CSE/KNU_CSE/View/SignIn/SignInNavigationView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/SignIn/SignInNavigationView.swift rename to KNU_CSE/KNU_CSE/View/SignIn/SignInNavigationView.swift diff --git a/KNU_CSE/KNU_CSE/SignIn/SignInView.swift b/KNU_CSE/KNU_CSE/View/SignIn/SignInView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/SignIn/SignInView.swift rename to KNU_CSE/KNU_CSE/View/SignIn/SignInView.swift diff --git a/KNU_CSE/KNU_CSE/SignIn/SignInViewModel.swift b/KNU_CSE/KNU_CSE/View/SignIn/SignInViewModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/SignIn/SignInViewModel.swift rename to KNU_CSE/KNU_CSE/View/SignIn/SignInViewModel.swift diff --git a/KNU_CSE/KNU_CSE/SignUp/SignUpModel.swift b/KNU_CSE/KNU_CSE/View/SignUp/SignUpModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/SignUp/SignUpModel.swift rename to KNU_CSE/KNU_CSE/View/SignUp/SignUpModel.swift diff --git a/KNU_CSE/KNU_CSE/SignUp/SignUpView.swift b/KNU_CSE/KNU_CSE/View/SignUp/SignUpView.swift similarity index 100% rename from KNU_CSE/KNU_CSE/SignUp/SignUpView.swift rename to KNU_CSE/KNU_CSE/View/SignUp/SignUpView.swift diff --git a/KNU_CSE/KNU_CSE/SignUp/SignUpViewModel.swift b/KNU_CSE/KNU_CSE/View/SignUp/SignUpViewModel.swift similarity index 100% rename from KNU_CSE/KNU_CSE/SignUp/SignUpViewModel.swift rename to KNU_CSE/KNU_CSE/View/SignUp/SignUpViewModel.swift