Skip to content

Commit

Permalink
[#90] LoginPromptVC 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
CJiu01 committed Nov 27, 2024
1 parent 05e24a9 commit 43e671e
Show file tree
Hide file tree
Showing 3 changed files with 193 additions and 23 deletions.

This file was deleted.

128 changes: 128 additions & 0 deletions EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/ReviewRouter.swift
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
}
}
}
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()
}
}
}

0 comments on commit 43e671e

Please sign in to comment.