Skip to content

Commit

Permalink
✨[FEAT] 회원가입 API 로직 연결(#91)
Browse files Browse the repository at this point in the history
  • Loading branch information
YoonAh-dev committed Feb 18, 2022
1 parent 453b4d0 commit 23146b0
Show file tree
Hide file tree
Showing 7 changed files with 165 additions and 4 deletions.
24 changes: 24 additions & 0 deletions Umpah-iOS/Umpah-iOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@
ED2ACAF826E41C7200C5A772 /* FilterCVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED2ACAF726E41C7200C5A772 /* FilterCVC.swift */; };
ED348AD727BFE108007559E9 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = ED348AD627BFE108007559E9 /* GoogleService-Info.plist */; };
ED348AD927BFE7BD007559E9 /* DayRecordRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED348AD827BFE7BD007559E9 /* DayRecordRequest.swift */; };
ED348ADB27C00D9C007559E9 /* LoginService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED348ADA27C00D9C007559E9 /* LoginService.swift */; };
ED348ADE27C00E2F007559E9 /* SignupRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED348ADD27C00E2F007559E9 /* SignupRequest.swift */; };
ED348AE027C00EA7007559E9 /* LoginRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED348ADF27C00EA7007559E9 /* LoginRequest.swift */; };
ED348AE227C00ED4007559E9 /* LoginStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED348AE127C00ED4007559E9 /* LoginStorage.swift */; };
ED5396E226B975AD0061722F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ED5396E126B975AD0061722F /* Main.storyboard */; };
ED5396E426B975D70061722F /* MainVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED5396E326B975D70061722F /* MainVC.swift */; };
ED5396E626B975E70061722F /* Routine.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = ED5396E526B975E70061722F /* Routine.storyboard */; };
Expand Down Expand Up @@ -211,6 +215,10 @@
ED2ACAF726E41C7200C5A772 /* FilterCVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterCVC.swift; sourceTree = "<group>"; };
ED348AD627BFE108007559E9 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
ED348AD827BFE7BD007559E9 /* DayRecordRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DayRecordRequest.swift; sourceTree = "<group>"; };
ED348ADA27C00D9C007559E9 /* LoginService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginService.swift; sourceTree = "<group>"; };
ED348ADD27C00E2F007559E9 /* SignupRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignupRequest.swift; sourceTree = "<group>"; };
ED348ADF27C00EA7007559E9 /* LoginRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginRequest.swift; sourceTree = "<group>"; };
ED348AE127C00ED4007559E9 /* LoginStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginStorage.swift; sourceTree = "<group>"; };
ED5396E126B975AD0061722F /* Main.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
ED5396E326B975D70061722F /* MainVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainVC.swift; sourceTree = "<group>"; };
ED5396E526B975E70061722F /* Routine.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Routine.storyboard; sourceTree = "<group>"; };
Expand Down Expand Up @@ -339,6 +347,7 @@
isa = PBXGroup;
children = (
3CA621F02727CB68002CB901 /* RecordService.swift */,
ED348ADA27C00D9C007559E9 /* LoginService.swift */,
);
path = APIServices;
sourceTree = "<group>";
Expand Down Expand Up @@ -596,6 +605,7 @@
ED22C695273A56DB00036CF7 /* Model */ = {
isa = PBXGroup;
children = (
ED348ADC27C00E1E007559E9 /* Login */,
ED22C696273A56E700036CF7 /* Record */,
);
path = Model;
Expand All @@ -619,10 +629,20 @@
3C7479EA2702EFAE006752EE /* RoutineStorage.swift */,
3CF4E90F2719C09A00FE8802 /* SwimmingDataStorage.swift */,
ED22C69A273A588A00036CF7 /* RecordStorage.swift */,
ED348AE127C00ED4007559E9 /* LoginStorage.swift */,
);
path = Storage;
sourceTree = "<group>";
};
ED348ADC27C00E1E007559E9 /* Login */ = {
isa = PBXGroup;
children = (
ED348ADD27C00E2F007559E9 /* SignupRequest.swift */,
ED348ADF27C00EA7007559E9 /* LoginRequest.swift */,
);
path = Login;
sourceTree = "<group>";
};
EDD3CCF32701BE9100AFED4B /* Font */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1093,6 +1113,7 @@
3C7479EB2702EFAE006752EE /* RoutineStorage.swift in Sources */,
EDD46F5226BEEA3B00FA91F2 /* UILabel+.swift in Sources */,
EDC7642D27BEB254006CBD51 /* ExpandedStateTableView.swift in Sources */,
ED348ADE27C00E2F007559E9 /* SignupRequest.swift in Sources */,
EDE550BE2700F80D004422CE /* DateTVC.swift in Sources */,
ED78843C26DE4551006D8787 /* ExpandedWeekTVC.swift in Sources */,
ED5396F526B977A20061722F /* UIScreen+.swift in Sources */,
Expand All @@ -1101,6 +1122,7 @@
EDD7C43C26CB903F00D93306 /* ChartTVC.swift in Sources */,
3CF4E9142719C6C600FE8802 /* Date+.swift in Sources */,
EDBA9D9E27B767F500E8E3B5 /* StrokeHeaderView.swift in Sources */,
ED348AE027C00EA7007559E9 /* LoginRequest.swift in Sources */,
ED8AB6A92703157A0066CD02 /* SelectedButtonDelegate.swift in Sources */,
EDD3CCDC27019A7200AFED4B /* SelectedRangeView.swift in Sources */,
EDC1EDDF26BF8FF600DCB215 /* Charts+.swift in Sources */,
Expand All @@ -1116,6 +1138,7 @@
ED78843A26DE3F63006D8787 /* WeekMonthHeader.swift in Sources */,
ED5396F726B977BB0061722F /* UIViewController+.swift in Sources */,
3C8CE32D26BCC318002BBFE5 /* UITableView+.swift in Sources */,
ED348ADB27C00D9C007559E9 /* LoginService.swift in Sources */,
3CF69DEA26E7776C002FD6DB /* ModifyElementVC.swift in Sources */,
3CA621EA2727C71E002CB901 /* SwimmingRecordRequest.swift in Sources */,
3C662B60271988E70061E133 /* HealthKitSetupAssistant.swift in Sources */,
Expand Down Expand Up @@ -1150,6 +1173,7 @@
ED8AB6AB2703158F0066CD02 /* States.swift in Sources */,
3CF4E9162719F43700FE8802 /* SwimmingDataViewModel.swift in Sources */,
EDD7C44026CBDB4600D93306 /* DetailTVC.swift in Sources */,
ED348AE227C00ED4007559E9 /* LoginStorage.swift in Sources */,
ED5F1A1A26ECF05E003FF801 /* StrokeTVC.swift in Sources */,
ED78843826DE3D18006D8787 /* DayHeader.swift in Sources */,
EDD3CCE62701B4EE00AFED4B /* UIColor+.swift in Sources */,
Expand Down
58 changes: 58 additions & 0 deletions Umpah-iOS/Umpah-iOS/Network/APIServices/LoginService.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
//
// LoginService.swift
// Umpah-iOS
//
// Created by SHIN YOON AH on 2022/02/19.
//

import Foundation
import Moya

enum LoginService{
case login(LoginRequest)
case signup(SignupRequest)
}

extension LoginService: TargetType {
var baseURL: URL {
return URL(string: GeneralAPI.baseURL)!
}

var path: String {
switch self {
case .login:
return "/auth/signin"
case .signup:
return "/auth/signup"
}
}

var method: Moya.Method {
switch self{
case .login,
.signup:
return .post
}
}

var sampleData: Data {
return "@@".data(using: .utf8)!
}

var task: Task {
switch self {
case .login(let param):
return .requestJSONEncodable(param)
case .signup(let param):
return .requestJSONEncodable(param)
}
}

var headers: [String : String]? {
switch self {
default:
return ["Content-Type": "application/json"]
}
}
}

16 changes: 16 additions & 0 deletions Umpah-iOS/Umpah-iOS/Network/Model/Login/LoginRequest.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
//
// LoginRequest.swift
// Umpah-iOS
//
// Created by SHIN YOON AH on 2022/02/19.
//

import Foundation

struct LoginRequest: Codable {
let phone: String

init(phone: String) {
self.phone = phone
}
}
18 changes: 18 additions & 0 deletions Umpah-iOS/Umpah-iOS/Network/Model/Login/SignupRequest.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// SignupRequest.swift
// Umpah-iOS
//
// Created by SHIN YOON AH on 2022/02/19.
//

import Foundation

struct SignupRequest: Codable {
let nickname: String
let phone: String

init(nickname: String, phone: String) {
self.nickname = nickname
self.phone = phone
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,3 @@ struct DayRecordRequest: Codable {
self.date = date
}
}

42 changes: 42 additions & 0 deletions Umpah-iOS/Umpah-iOS/Network/Storage/LoginStorage.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
//
// LoginStorage.swift
// Umpah-iOS
//
// Created by SHIN YOON AH on 2022/02/19.
//

import Foundation
import Moya

final class LoginStorage {

// MARK: - Shared

static let shared: LoginStorage = LoginStorage()

// MARK: - Network

private let authProvider = MoyaProvider<LoginService>(plugins: [NetworkLoggerPlugin(verbose: true)])

// MARK: - POST /auth/signup
func dispatchSignUp(nickname: String,
phone: String,
completion: @escaping (() -> ())) {
let param = SignupRequest(nickname: "최다인", phone: "01012345678")

self.authProvider.request(.signup(param)) { response in
switch response{
case .success(let result):
do{
print(result)
completion()
}catch(let err){
print(err.localizedDescription)
}
case .failure(let err):
print(err.localizedDescription)
print("와 실패다!")
}
}
}
}
10 changes: 7 additions & 3 deletions Umpah-iOS/Umpah-iOS/Screen/Main/Controller/MainVC.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,13 @@ final class MainVC: MainTableVC {
super.viewDidLoad()
authorizeHealthKit()
// TODO: Dummy Record
storage.fetchDayRecord(date: "2021-05-19") { [weak self] in
self?.baseTableView.reloadData()
print("reload 성공")
// storage.fetchDayRecord(date: "2021-05-19") { [weak self] in
// self?.baseTableView.reloadData()
// print("reload 성공")
// }
let loginStorage = LoginStorage.shared
loginStorage.dispatchSignUp(nickname: "", phone: "") {
print("와우 회원가입 완료")
}
}

Expand Down

0 comments on commit 23146b0

Please sign in to comment.