Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
6514ccf
[#234]하단 탭바 1차 구현
Hrepay Jun 21, 2025
06debfd
[#234]하단 탭바 UI 2차 구현
Hrepay Jun 21, 2025
e4bdfeb
[#234] 로그인 안했을 때 alert 처리 구현
Hrepay Jun 22, 2025
2d74843
[#234] tabBar 관련 파일 Base 코드로 수정
Hrepay Jun 22, 2025
4009621
[#234] HomeViewController 네비게이션 버그 수정
Hrepay Jun 22, 2025
5c43819
[#234] 네이버 맵 1차 연동 완료
Hrepay Jun 24, 2025
470e95b
[#234] map UI 1차 구현
Hrepay Jun 24, 2025
d46417e
[#234] 마이페이지 1차 수정
Hrepay Jun 25, 2025
fbc511c
[#234] 마이페이지 UI 구현 완료
Hrepay Jun 25, 2025
b1ea93a
[#234] 마이페이지 소속 설정 완료
Hrepay Jun 26, 2025
917e5a6
[#234] 닉네임 설정 텍스트 필드 여백 수정
Hrepay Jun 30, 2025
9314358
[#234] 소속 설정 API 연결
Hrepay Jun 30, 2025
e1e2a56
[#234] 전체 제휴 지도 1차 연결 및 pin 이미지 추가
Hrepay Jul 1, 2025
df0b102
[#234] 전체 제휴 지도 마커 UI 설정 완료
Hrepay Jul 1, 2025
c11e1f3
[#234] 음식점 디테일 뷰 1차 구현
Hrepay Jul 2, 2025
b0f9f97
[#234] 제휴 지도 API에 맞춰서 수정
Hrepay Jul 4, 2025
ffdfe5b
[#234] 제휴 지도 디테일 뷰 레이아웃 수정 완료
Hrepay Jul 4, 2025
912c879
Merge branch 'develop' into feat/#234
Hrepay Jul 4, 2025
86d3a3e
[#234] 마이페이지 학과 선택 시 버튼 활성화 및 문구 변경
Hrepay Jul 6, 2025
a2ec5c9
[#234] 제휴 지도에 학과 띄우기 연결 완료
Hrepay Jul 6, 2025
42a857a
[#234] 제휴지도 학과 음식점 띄우기 완료
Hrepay Jul 6, 2025
21d4c8c
[#234] 하단 탭으로 새로고침 진행시 선택한 메뉴에 맞춰서 제휴 음식점 띄우기 수정
Hrepay Jul 7, 2025
18f16dd
[#234] 드롭메뉴 중복 생성 방지
Hrepay Jul 7, 2025
068b591
Merge branch 'develop' into feat/#234
Hrepay Jul 7, 2025
45e855e
[#234] merge 버그 수정
Hrepay Jul 7, 2025
ee82096
[#234] 자신의 위치 찍기 임시 커밋
Hrepay Jul 9, 2025
193cda6
[#234] 학과 설정 안했을 경우 뜨는 바텀시트 구현
Hrepay Jul 15, 2025
a529720
[#234] 바텀 시트에서 마이페이지-내 정보로 네비게이션 설정 완료
Hrepay Jul 15, 2025
cbe4e96
[#234] 마이페이지연결된 계정 수정 완료
Hrepay Jul 16, 2025
dd6b840
[#234] 내 제휴 관련 주석 제거 및 학과 설정 뷰 레이아웃 버그 수정
Hrepay Jul 20, 2025
893e1bc
[#234] 제휴 마커 레이아웃 버그 수정
Hrepay Jul 20, 2025
14801c3
[#234] 찜 아이콘 제거
Hrepay Jul 21, 2025
fd55113
[#234] 학과 변경 바로 반영안되는 버그 수정
Hrepay Jul 21, 2025
da6562d
[#234] 제휴지도 관련 파일 주석 및 MARK 정리, BaseView 적용
Hrepay Jul 21, 2025
5435f22
[#234] 내 위치 자동 활성화 해제 및 단과대 버그 수정
Hrepay Jul 21, 2025
5df4d1d
[#234] 마이페이지 정보 수정 시 뜨는 멘트 수정
Hrepay Jul 21, 2025
fea5ae5
[#234] 제휴 지도 탭으로 복귀시 전체 버튼으로 세팅 설정
Hrepay Jul 21, 2025
5d8adc3
[#234] 제휴 지도 dto 버그 수정 완료
Hrepay Jul 23, 2025
b345701
Merge branch 'develop' into feat/#234
Hrepay Aug 13, 2025
a938a7f
[#234] 단과대/학과 API 연결 완료
Hrepay Aug 13, 2025
51d882e
[#234] 내정보 불러오기 dto 수정
Hrepay Aug 24, 2025
a8965c5
Merge branch 'develop' into feat/#234
Hrepay Aug 25, 2025
956d2c9
[#234] 학과 설정 API 파라미터 변경 (departmentName -> departmentId)
Hrepay Aug 25, 2025
44cb3f3
[#234] 마이페이지 내 정보 리스트 추가 및 기능 연결
Hrepay Aug 25, 2025
b4330ac
[#234] 내 정보 관련 기능 1차 수정
Hrepay Aug 25, 2025
83481bc
[#234] SetNickNameViewController 파일 리팩토링, AppDelegate에 Realm 마이크레이션 추가
Hrepay Aug 26, 2025
c2e4e20
[#234] myPageTableView의 height가 유동적으로 동작하게끔 리펙토링
Hrepay Aug 26, 2025
9de5077
Merge branch 'develop' into feat/#234
Hrepay Aug 27, 2025
a8d19e3
[#234 하단 탭바 높이 수정
Hrepay Aug 27, 2025
1fba51b
[#234] 제휴 바텀 시트 iOS 16.0 버전 일때, Height가 유동적으로 바뀌게 수정
Hrepay Aug 27, 2025
2ae22f3
[#234] 하단 탭바 추가 수정
Hrepay Aug 27, 2025
cd54e60
[#234] 아이콘 이미지 수정
Hrepay Aug 28, 2025
61dba7b
[#234] profile 이미지 리뷰 페이지에서 크기에 맞게 수정
Hrepay Sep 2, 2025
96c3b1b
[#234] 둘러보기 상태에서 지도 선택 시 로그인유도 alert 설정 완료
Hrepay Sep 2, 2025
3409f0e
[#234] 학과 설정을 하지 않은 상태에서 닉네임만 수정하고 저장할 경우 뜨던 버그 수정
Hrepay Sep 2, 2025
fbc6c31
[#234] 마이-내정보를 띄울 때 UI 중복 처리되는 버그 수정
Hrepay Sep 2, 2025
a77518c
[#234] iOS 버전에 따른 문법 분기
Hrepay Sep 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added EATSSU/App/Sources.zip
Binary file not shown.
19 changes: 19 additions & 0 deletions EATSSU/App/Sources/Data/LocalDB/UserInfo.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ class UserInfo: Object {
@Persisted(primaryKey: true) var id: String = UUID().uuidString
@Persisted var nickname: String = ""
@Persisted private var accountTypeRaw: String?
@Persisted var collegeId: Int?
@Persisted var collegeName: String?
@Persisted var departmentId: Int?
@Persisted var departmentName: String?

var accountType: AccountType? {
get {
Expand All @@ -27,10 +31,25 @@ class UserInfo: Object {
self.init()
self.accountType = accountType
}

func updateUserInfo(nickname: String, collegeId: Int?, collegeName: String?, departmentId: Int?, departmentName: String?) {
self.nickname = nickname
self.collegeId = collegeId
self.collegeName = collegeName
self.departmentId = departmentId
self.departmentName = departmentName
}
Comment on lines +35 to +41

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

updateUserInfo 메서드와 updateDepartment 메서드 간에 중복되는 코드가 있습니다. 코드 재사용성을 높이고 중복을 줄이기 위해 updateUserInfo 내부에서 updateDepartment를 호출하는 방식으로 리팩토링하는 것을 제안합니다.

    func updateUserInfo(nickname: String, collegeId: Int?, collegeName: String?, departmentId: Int?, departmentName: String?) {
        self.nickname = nickname
        updateDepartment(collegeId: collegeId, collegeName: collegeName, departmentId: departmentId, departmentName: departmentName)
    }

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

중복 제거하려는 의도는 좋은데, 굳이 updateDepartment()로 나누지 않아도 괜찮을 것 같네요


func updateNickname(_ nickname: String) {
self.nickname = nickname
}

func updateDepartment(collegeId: Int?, collegeName: String?, departmentId: Int?, departmentName: String?) {
self.collegeId = collegeId
self.collegeName = collegeName
self.departmentId = departmentId
self.departmentName = departmentName
}

enum AccountType: String {
case apple = "Apple"
Expand Down
33 changes: 30 additions & 3 deletions EATSSU/App/Sources/Data/LocalDB/UserInfoManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,44 @@ class UserInfoManager {
return userInfo
}
}

func updateUserInfo(for userInfo: UserInfo, nickname: String, collegeId: Int?, collegeName: String?, departmentId: Int?, departmentName: String?) {
do {
try realm.write {
userInfo.updateUserInfo(nickname: nickname,
collegeId: collegeId,
collegeName: collegeName,
departmentId: departmentId,
departmentName: departmentName)
}
} catch {
print("사용자 정보 업데이트 중 오류 발생: \(error)")
}
}

func updateNickname(for userInfo: UserInfo, nickname: String) {
do {
try realm.write {
userInfo.updateNickname(nickname)
userInfo.updateNickname(nickname) // UserInfo.swift에 있는 함수 호출
}
} catch {
print("닉네임 업데이트 중 오류 발생: \(error)")
print("닉네임 정보 업데이트 중 오류 발생: \(error)")
}
}


func updateDepartment(for userInfo: UserInfo, collegeId: Int?, collegeName: String?, departmentId: Int?, departmentName: String?) {
do {
try realm.write {
userInfo.updateDepartment(collegeId: collegeId,
collegeName: collegeName,
departmentId: departmentId,
departmentName: departmentName)
}
} catch {
print("학과 정보 업데이트 중 오류 발생: \(error)")
}
}

func getCurrentUserInfo() -> UserInfo? {
realm.objects(UserInfo.self).first
}
Expand Down
12 changes: 12 additions & 0 deletions EATSSU/App/Sources/Data/Network/DTO/My/GetDepartmentResponse.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
//
// GetDepartmentResponse.swift
// EATSSU
//
// Created by 황상환 on 7/7/25.
//

import Foundation

struct GetDepartmentResponse: Codable {
let departmentName: String
}
16 changes: 16 additions & 0 deletions EATSSU/App/Sources/Data/Network/DTO/My/LookupItemDTO.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//
// LookupItemDTO.swift
// EATSSU
//
// Created by 황상환 on 8/13/25.
//

import Foundation

struct LookupItemDTO: Codable {
let id: Int
let name: String
}

typealias CollegesResponseDTO = BaseResponse<[LookupItemDTO]>
typealias DepartmentsResponseDTO = BaseResponse<[LookupItemDTO]>
4 changes: 4 additions & 0 deletions EATSSU/App/Sources/Data/Network/DTO/My/MyInfoResponse.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,8 @@ import Foundation
struct MyInfoResponse: Codable {
let nickname: String?
let provider: String
let departmentId: Int?
let departmentName: String?
let collegeId: Int?
let collegeName: String?
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//
// PartnershipDTO.swift
// EATSSU
//
// Created by 황상환 on 7/1/25.
//

import Foundation

struct PartnershipDTO: Codable {
let storeName: String
let longitude: Double
let latitude: Double
let restaurantType: String
let partnershipInfos: [PartnershipInfoDTO]
}

struct PartnershipInfoDTO: Codable {
let id: Int
let partnershipType: String
let collegeName: String?
let departmentName: String?
let likeCount: Int
let isLiked: Bool
let description: String
let startDate: String
let endDate: String
}
39 changes: 30 additions & 9 deletions EATSSU/App/Sources/Data/Network/Router/MyRouter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ enum MyRouter {
case myInfo
case signOut
case inquiry(param: InquiryRequest)
case getDepartment
case getMyPartnerships
case colleges
case departments(collegeId: Int)
}

extension MyRouter: TargetType {
Expand All @@ -31,14 +35,22 @@ extension MyRouter: TargetType {
"/users"
case .inquiry:
"/inquiries/"
case .getDepartment:
"/users/department"
case .getMyPartnerships:
"/users/department/partnerships"
case .colleges:
"/users/lookup/colleges"
case .departments:
"/users/lookup/departments"
}
}

var method: Moya.Method {
switch self {
case .myReview:
case .myReview, .departments, .colleges:
.get
case .myInfo:
case .myInfo, .getDepartment, .getMyPartnerships:
.get
case .signOut:
.delete
Expand All @@ -50,16 +62,25 @@ extension MyRouter: TargetType {
var task: Moya.Task {
switch self {
case .myReview:
.requestParameters(parameters: ["page": 0,
"size": 20,
"sort": "date,DESC"],
encoding: URLEncoding.queryString)
.requestParameters(parameters: ["page": 0,
"size": 20,
"sort": "date,DESC"],
encoding: URLEncoding.queryString)
case .myInfo:
.requestPlain
.requestPlain
case .signOut:
.requestPlain
.requestPlain
case let .inquiry(param):
.requestJSONEncodable(param)
.requestJSONEncodable(param)
case .getDepartment:
.requestPlain
case .getMyPartnerships:
.requestPlain
case .colleges:
.requestPlain
case let .departments(collegeId):
.requestParameters(parameters: ["collegeId": collegeId],
encoding: URLEncoding.queryString)
}
}

Expand Down
42 changes: 42 additions & 0 deletions EATSSU/App/Sources/Data/Network/Router/PartnershipRouter.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
//
// PartnershipRouter.swift
// EATSSU
//
// Created by 황상환 on 7/1/25.
//

import UIKit

import Moya

enum PartnershipRouter {
case getAllPartnerships
}

extension PartnershipRouter: TargetType {
var baseURL: URL {
URL(string: Config.baseURL)!
}

var path: String {
switch self {
case .getAllPartnerships:
return "/partnerships"
}
}

var method: Moya.Method {
return .get
}

var task: Task {
return .requestPlain
}

var headers: [String: String]? {
switch self {
default:
return ["Content-Type": "application/json"]
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Moya
enum UserNicknameRouter {
case setNickname(nickname: String)
case checkNickname(nickname: String)
case setDepartment(departmentId: Int)
}

extension UserNicknameRouter: TargetType {
Expand All @@ -24,6 +25,8 @@ extension UserNicknameRouter: TargetType {
"/users/nickname"
case .checkNickname:
"/users/validate/nickname"
case .setDepartment:
"/users/department"
}
}

Expand All @@ -33,6 +36,8 @@ extension UserNicknameRouter: TargetType {
.patch
case .checkNickname:
.get
case .setDepartment:
.post
}
}

Expand All @@ -44,6 +49,9 @@ extension UserNicknameRouter: TargetType {
case let .checkNickname(nickname: nickname):
let param: [String: String] = ["nickname": nickname]
return .requestParameters(parameters: param, encoding: URLEncoding.queryString)
case let .setDepartment(departmentId: departmentId):
let param: [String: Int] = ["departmentId": departmentId]
return .requestParameters(parameters: param, encoding: JSONEncoding.default)
}
}

Expand Down
Loading