-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
193 additions
and
23 deletions.
There are no files selected for viewing
23 changes: 0 additions & 23 deletions
23
EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/TotalReviewResponse.swift
This file was deleted.
Oops, something went wrong.
128 changes: 128 additions & 0 deletions
128
EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/ReviewRouter.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
// | ||
// ReviewRouter.swift | ||
// EatSSU-iOS | ||
// | ||
// Created by 박윤빈 on 2023/05/22. | ||
// | ||
|
||
import Moya | ||
import Foundation | ||
|
||
enum ReviewRouter { | ||
// 상단 메뉴 별점 불러오는 API -> 두개로 쪼개짐. 고정, 변동 분기처리는 아래에서! | ||
case reviewRate(_ type: String, _ id: Int) | ||
|
||
// 하단 리뷰 리스트 불러오는 API | ||
case reviewList(_ type: String, _ id: Int) | ||
case report(param: ReportRequest) | ||
case deleteReview(_ reviewId: Int) | ||
case fixReview(_ reviewId: Int, _ param: BeforeSelectedImageDTO) | ||
} | ||
|
||
extension ReviewRouter: TargetType, AccessTokenAuthorizable { | ||
var baseURL: URL { | ||
return URL(string: Config.baseURL)! | ||
} | ||
|
||
var path: String { | ||
switch self { | ||
case .reviewRate(let type, let id): | ||
switch type { | ||
case "VARIABLE": | ||
return "/reviews/meals/\(id)" | ||
case "FIXED": | ||
return "/reviews/menus/\(id)" | ||
default: | ||
return "" | ||
} | ||
case .reviewList: | ||
return "/reviews" | ||
case .report: | ||
return "/reports" | ||
case .deleteReview(let reviewId): | ||
return "/reviews/\(reviewId)" | ||
case .fixReview(let reviewId, _): | ||
return "/reviews/\(reviewId)" | ||
} | ||
} | ||
|
||
var method: Moya.Method { | ||
switch self { | ||
case .reviewRate: | ||
return .get | ||
case .reviewList: | ||
return .get | ||
case .report: | ||
return .post | ||
case .deleteReview: | ||
return .delete | ||
case .fixReview: | ||
return .patch | ||
} | ||
} | ||
|
||
var task: Moya.Task { | ||
switch self { | ||
case .reviewRate(let type, let id): | ||
switch type { | ||
case "VARIABLE": | ||
return .requestParameters(parameters: ["mealId": id], | ||
encoding: URLEncoding.queryString) | ||
case "FIXED": | ||
return .requestParameters(parameters: ["menuId": id], | ||
encoding: URLEncoding.queryString) | ||
default: | ||
return .requestPlain | ||
} | ||
|
||
/// 이후 정렬 순서, 리뷰 로드 개수 등 수정 필요하면 고치기 | ||
case .reviewList(let type, let id): | ||
switch type { | ||
case "VARIABLE": | ||
return .requestParameters(parameters: ["menuType": type, | ||
"mealId": id, | ||
"page": 0, | ||
"size": 20, | ||
"sort": "date,DESC"], | ||
encoding: URLEncoding.queryString) | ||
case "FIXED": | ||
return .requestParameters(parameters: ["menuType": type, | ||
"menuId": id, | ||
"page": 0, | ||
"size": 20, | ||
"sort": "date,DESC"], | ||
encoding: URLEncoding.queryString) | ||
default: | ||
return .requestPlain | ||
} | ||
case .report(param: let param): | ||
return .requestJSONEncodable(param) | ||
case .deleteReview: | ||
return .requestPlain | ||
case .fixReview(_, let param): | ||
return .requestJSONEncodable(param) | ||
} | ||
} | ||
|
||
var headers: [String : String]? { | ||
switch self { | ||
case .reviewRate, .reviewList: | ||
return ["Content-Type":"application/json"] | ||
default: | ||
let token = RealmService.shared.getToken() | ||
if token == "" { | ||
return ["Content-Type":"application/json"] | ||
} else { | ||
return ["Content-Type":"application/json", | ||
"Authorization": "Bearer \(token)"] | ||
} | ||
} | ||
} | ||
|
||
var authorizationType: Moya.AuthorizationType? { | ||
switch self { | ||
default: | ||
return .bearer | ||
} | ||
} | ||
} |
65 changes: 65 additions & 0 deletions
65
...MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/LoginPromptViewController.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
// | ||
// LoginPromptViewController.swift | ||
// EATSSU | ||
// | ||
// Created by 최지우 on 11/26/24. | ||
// | ||
|
||
import UIKit | ||
|
||
final class LoginPromptViewController: BaseViewController { | ||
|
||
// MARK: - UI Components | ||
|
||
private let loginAlertLabel: UILabel = { | ||
let label = UILabel() | ||
label.text = "3초만에 로그인하고\n리뷰를 달아보세요!" | ||
label.textAlignment = .left | ||
label.numberOfLines = 0 | ||
label.font = EATSSUFontFamily.Pretendard.bold.font(size: 18) | ||
return label | ||
}() | ||
|
||
private let appleLoginButton: UIButton = { | ||
let button = UIButton() | ||
button.setImage(EATSSUAsset.Images.Version2.appleLoginButton.image, for: .normal) | ||
return button | ||
}() | ||
|
||
private let kakaoLoginButton: UIButton = { | ||
let button = UIButton() | ||
button.setImage(EATSSUAsset.Images.Version2.kakaoLoginButton.image, for: .normal) | ||
return button | ||
}() | ||
|
||
override func viewDidLoad() { | ||
super.viewDidLoad() | ||
|
||
// view.backgroundColor = .yellow | ||
} | ||
|
||
|
||
override func configureUI() { | ||
view.addSubviews( | ||
loginAlertLabel, | ||
appleLoginButton, | ||
kakaoLoginButton | ||
) | ||
} | ||
|
||
override func setLayout() { | ||
loginAlertLabel.snp.makeConstraints { | ||
$0.top.leading.equalTo(view.safeAreaLayoutGuide).offset(30.adjusted) | ||
} | ||
appleLoginButton.snp.makeConstraints { | ||
// $0.top.equalTo(loginAlertLabel.snp.bottom).offset(44.adjusted) | ||
$0.bottom.equalTo(kakaoLoginButton.snp.top).offset(8) | ||
$0.centerX.equalToSuperview() | ||
|
||
} | ||
kakaoLoginButton.snp.makeConstraints { | ||
$0.bottom.equalTo(view.safeAreaLayoutGuide).inset(30) | ||
$0.centerX.equalToSuperview() | ||
} | ||
} | ||
} |