Skip to content

Commit

Permalink
[Edit] RecordViewModel 리팩토링 #142
Browse files Browse the repository at this point in the history
- WrittenUser 모델 변경
- Drink 모델 오타 수정
- 기존 RecordViewModel -> ExRecordViewModel 변경
- RecordVieModel 새로 생성 및 코드 리팩토링
- FireStroageService 의 uploadImageToStorage() 수정
  • Loading branch information
withseon committed Mar 11, 2024
1 parent 90e1de5 commit e17d1c6
Show file tree
Hide file tree
Showing 9 changed files with 379 additions and 208 deletions.
16 changes: 8 additions & 8 deletions JUDA.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
2C63DD612B67D5EB00770E3A /* PhotoSelectPagingTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C63DD602B67D5EB00770E3A /* PhotoSelectPagingTab.swift */; };
2C63DD652B67DFA400770E3A /* DrinkTagScroll.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C63DD642B67DFA400770E3A /* DrinkTagScroll.swift */; };
2C63DD672B67EB1B00770E3A /* RecordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C63DD662B67EB1B00770E3A /* RecordView.swift */; };
2C69CDAC2B9DF61600F70F80 /* RecordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C69CDAB2B9DF61600F70F80 /* RecordViewModel.swift */; };
2C7FD5522B848EEF00169512 /* Post.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C7FD5512B848EEF00169512 /* Post.swift */; };
2CACB53C2B99BAC500DD6DCE /* FireStorageService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CACB53B2B99BAC500DD6DCE /* FireStorageService.swift */; };
7B0A8BC52B8C163E00740E61 /* Report.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B0A8BC42B8C163E00740E61 /* Report.swift */; };
Expand All @@ -100,7 +101,6 @@
7B6D76B52B67D5F900601B55 /* PostTags.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6D76B42B67D5F900601B55 /* PostTags.swift */; };
7B6D76B92B68D9C900601B55 /* PostReportView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B6D76B82B68D9C900601B55 /* PostReportView.swift */; };
7B74FA5B2B9A9EE800BAC2AC /* PostViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B74FA5A2B9A9EE800BAC2AC /* PostViewModel.swift */; };
7B74FA5D2B9ABF7600BAC2AC /* RecordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B74FA5C2B9ABF7600BAC2AC /* RecordViewModel.swift */; };
7B881CA32B97464200571352 /* FirestorePostService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B881CA22B97464200571352 /* FirestorePostService.swift */; };
7B881CA52B97545700571352 /* FirestoreDrinkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B881CA42B97545700571352 /* FirestoreDrinkService.swift */; };
7B904C662B6168C60052384A /* PostCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B904C652B6168C60052384A /* PostCell.swift */; };
Expand Down Expand Up @@ -174,7 +174,7 @@
B1EE24922B61447F007F68B0 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE24912B61447F007F68B0 /* MainView.swift */; };
B1EE24942B614485007F68B0 /* LogInView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE24932B614485007F68B0 /* LogInView.swift */; };
B1EE24982B6144BD007F68B0 /* ExLikedViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE24972B6144BD007F68B0 /* ExLikedViewModel.swift */; };
B1EE249A2B6144C5007F68B0 /* RecordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE24992B6144C5007F68B0 /* RecordViewModel.swift */; };
B1EE249A2B6144C5007F68B0 /* ExRecordViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE24992B6144C5007F68B0 /* ExRecordViewModel.swift */; };
B1EE249C2B6144CD007F68B0 /* ExPostsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE249B2B6144CD007F68B0 /* ExPostsViewModel.swift */; };
B1EE249E2B6144DD007F68B0 /* ExDrinkViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE249D2B6144DD007F68B0 /* ExDrinkViewModel.swift */; };
B1EE24A52B614872007F68B0 /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE24A42B614872007F68B0 /* SearchBar.swift */; };
Expand Down Expand Up @@ -255,6 +255,7 @@
2C63DD602B67D5EB00770E3A /* PhotoSelectPagingTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoSelectPagingTab.swift; sourceTree = "<group>"; };
2C63DD642B67DFA400770E3A /* DrinkTagScroll.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DrinkTagScroll.swift; sourceTree = "<group>"; };
2C63DD662B67EB1B00770E3A /* RecordView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordView.swift; sourceTree = "<group>"; };
2C69CDAB2B9DF61600F70F80 /* RecordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordViewModel.swift; sourceTree = "<group>"; };
2C7FD5512B848EEF00169512 /* Post.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Post.swift; sourceTree = "<group>"; };
2CACB53B2B99BAC500DD6DCE /* FireStorageService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FireStorageService.swift; sourceTree = "<group>"; };
7B0A8BC42B8C163E00740E61 /* Report.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Report.swift; sourceTree = "<group>"; };
Expand All @@ -272,7 +273,6 @@
7B6D76B62B68972000601B55 /* PostGrid.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostGrid.swift; sourceTree = "<group>"; };
7B6D76B82B68D9C900601B55 /* PostReportView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostReportView.swift; sourceTree = "<group>"; };
7B74FA5A2B9A9EE800BAC2AC /* PostViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostViewModel.swift; sourceTree = "<group>"; };
7B74FA5C2B9ABF7600BAC2AC /* RecordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordViewModel.swift; sourceTree = "<group>"; };
7B881CA22B97464200571352 /* FirestorePostService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirestorePostService.swift; sourceTree = "<group>"; };
7B881CA42B97545700571352 /* FirestoreDrinkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirestoreDrinkService.swift; sourceTree = "<group>"; };
7B904C652B6168C60052384A /* PostCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostCell.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -323,7 +323,7 @@
B1EE24912B61447F007F68B0 /* MainView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = "<group>"; };
B1EE24932B614485007F68B0 /* LogInView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogInView.swift; sourceTree = "<group>"; };
B1EE24972B6144BD007F68B0 /* ExLikedViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExLikedViewModel.swift; sourceTree = "<group>"; };
B1EE24992B6144C5007F68B0 /* RecordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordViewModel.swift; sourceTree = "<group>"; };
B1EE24992B6144C5007F68B0 /* ExRecordViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExRecordViewModel.swift; sourceTree = "<group>"; };
B1EE249B2B6144CD007F68B0 /* ExPostsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExPostsViewModel.swift; sourceTree = "<group>"; };
B1EE249D2B6144DD007F68B0 /* ExDrinkViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExDrinkViewModel.swift; sourceTree = "<group>"; };
B1EE24A42B614872007F68B0 /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -727,7 +727,8 @@
B1EE24822B6143D2007F68B0 /* Record */ = {
isa = PBXGroup;
children = (
B1EE24992B6144C5007F68B0 /* RecordViewModel.swift */,
B1EE24992B6144C5007F68B0 /* ExRecordViewModel.swift */,
2C69CDAB2B9DF61600F70F80 /* RecordViewModel.swift */,
);
path = Record;
sourceTree = "<group>";
Expand All @@ -740,7 +741,6 @@
7B881CA22B97464200571352 /* FirestorePostService.swift */,
7B74FA5A2B9A9EE800BAC2AC /* PostViewModel.swift */,
096F2D5C2B9C583E00DFC5A3 /* FirestoreReportService.swift */,
7B74FA5C2B9ABF7600BAC2AC /* RecordViewModel.swift */,
);
path = Posts;
sourceTree = "<group>";
Expand Down Expand Up @@ -921,7 +921,6 @@
7BBDFF6F2B6B90EB0036FB8B /* AddTagView.swift in Sources */,
09A320162B8B30D100DE4646 /* ExSearchDrinkViewModel.swift in Sources */,
7BBDFF702B6B90EB0036FB8B /* PostGrid.swift in Sources */,
7B74FA5D2B9ABF7600BAC2AC /* RecordViewModel.swift in Sources */,
7B881CA52B97545700571352 /* FirestoreDrinkService.swift in Sources */,
090FF1CE2B83413100AF22B5 /* CustomLoadingView.swift in Sources */,
2C5B0F422B6B10CF005F1A99 /* CustomDialog.swift in Sources */,
Expand All @@ -946,7 +945,7 @@
7B881CA32B97464200571352 /* FirestorePostService.swift in Sources */,
0974A1502B8B7B6C00476199 /* ShimmerPostCell.swift in Sources */,
09F869B52B6A47B700A56A4C /* AlarmStoreListCell.swift in Sources */,
B1EE249A2B6144C5007F68B0 /* RecordViewModel.swift in Sources */,
B1EE249A2B6144C5007F68B0 /* ExRecordViewModel.swift in Sources */,
2C63DD672B67EB1B00770E3A /* RecordView.swift in Sources */,
AC797BDA2B8B8BEB0018D227 /* DrinkTopView.swift in Sources */,
7B6D76AF2B67CFC900601B55 /* PostInfo.swift in Sources */,
Expand Down Expand Up @@ -1003,6 +1002,7 @@
096F2D5B2B9B044400DFC5A3 /* DrinkViewModel.swift in Sources */,
099912652B85799800E72C73 /* CircularLoaderView.swift in Sources */,
09BCC1582B7C805400FF4D1B /* UserAgreementView.swift in Sources */,
2C69CDAC2B9DF61600F70F80 /* RecordViewModel.swift in Sources */,
AC7EA1D92B8D77EE00E3E5EC /* Bundle +.swift in Sources */,
B121A5722B5F8EE100667D42 /* Font +.swift in Sources */,
B1EE249C2B6144CD007F68B0 /* ExPostsViewModel.swift in Sources */,
Expand Down
2 changes: 1 addition & 1 deletion JUDA/Model/Drink.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ struct Drink {
let drinkField: DrinkField
let taggedPosts: [Post]
let agePreference: AgePreference
let GenderPreference: GenderPreference
let genderPreference: GenderPreference
let likedUsersID: [String]
}

Expand Down
2 changes: 2 additions & 0 deletions JUDA/Model/Post.swift
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ struct PostField: Codable {
struct WrittenUser: Codable {
var userID: String
var userName: String
var userAge: Int
var userGender: String
var userProfileImageURL: URL
}

Expand Down
8 changes: 6 additions & 2 deletions JUDA/ViewModel/App/FireStorageService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,13 @@ final class FireStorageService {
private let imageType = "image/jpg"

// FireStorage 에 이미지 올리기
func uploadImageToStorage(folder: FireStorageFolderType, image: UIImage, fileName: String) async throws {
func uploadImageToStorage(folder: FireStorageFolderType, userID: String? = nil, postID: String? = nil, image: UIImage, fileName: String) async throws {
do {
let storageRoute = storageRef.child("\(folder.rawValue)/\(fileName)")
var storagePath = folder.rawValue
if let userID = userID, let postID = postID {
storagePath += "/\(userID)/\(postID)"
}
let storageRoute = storageRef.child("\(storagePath)/\(fileName)")
let data = Formatter.compressImage(image)
let metaData = StorageMetadata()
metaData.contentType = imageType
Expand Down
22 changes: 21 additions & 1 deletion JUDA/ViewModel/Drink/FirestoreDrinkService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ extension FirestoreDrinkService {
return Drink(drinkField: drikField,
taggedPosts: taggedPosts,
agePreference: agePreference,
GenderPreference: genderPreference,
genderPreference: genderPreference,
likedUsersID: likedUsersID)
} catch DrinkError.fetchDrinkField {
print("error :: fetchDrinkField() -> fetch drink field data failure")
Expand Down Expand Up @@ -196,6 +196,26 @@ extension FirestoreDrinkService {
}
}

extension FirestoreDrinkService {
// drink collection agePreference data update 메서드
func updateDrinkAgePreference(ref: CollectionReference, drinkID: String, age: String, userID: String) async {
do {
try await ref.document(drinkID).collection("agePreference").document(age).collection(age).document(userID).setData([:])
} catch {
// TODO: error 처리
}
}

// drink collection genderPreference data update 메서드
func updateDrinkGenderPreference(ref: CollectionReference, drinkID: String, gender: String, userID: String) async {
do {
try await ref.document(drinkID).collection("genderPreference").document(gender).collection(gender).document(userID).setData([:])
} catch {
// TODO: error 처리
}
}
}

// MARK: Firestore drink document delete
extension FirestoreDrinkService {
// drinks collection에서 삭제하고싶은 drink에 해당하는 document 삭제 메서드
Expand Down
3 changes: 1 addition & 2 deletions JUDA/ViewModel/Posts/FirestorePostService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ extension FirestorePostService {

//MARK: Firestore post document upload
extension FirestorePostService {
func uploadPostDocument(post: Post) async throws {
let postID = UUID().uuidString
func uploadPostDocument(post: Post, postID: String) async throws {
let postDocumentRef = Firestore.firestore().collection("posts").document(postID)
let likedUsersIDCollectionRef = postDocumentRef.collection("likedUsersID")

Expand Down
8 changes: 0 additions & 8 deletions JUDA/ViewModel/Posts/RecordViewModel.swift

This file was deleted.

Loading

0 comments on commit e17d1c6

Please sign in to comment.