Skip to content

Commit

Permalink
♻️ :: 유저 플리 및 좋아요 곡 교체 완료
Browse files Browse the repository at this point in the history
  • Loading branch information
yongbeomkwak committed Dec 9, 2023
1 parent c93b588 commit 580a9b2
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 25 deletions.
46 changes: 25 additions & 21 deletions Projects/Services/APIKit/Sources/API/UserAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,27 @@ public enum UserAPI {
}

public struct RequsetProfileModel:Encodable {
var image:String
var type:String
}

public struct RequsetUserNameModel:Encodable {
var username:String
var name:String
}

public struct RequsetEditFavoriteSongs:Encodable {
var songs:[String]
var songIds:[String]
}

public struct RequsetEditPlayList:Encodable {
var playlists:[String]
var playlistKeys:[String]
}

public struct RequsetDeletePlayList: Encodable {
var playlists:[String]
var playlistKeys:[String]
}

public struct RequestDeleteFavoriteList: Encodable {
var songs: [String]
var songIds: [String]
}

extension UserAPI: WMAPI {
Expand All @@ -53,19 +53,19 @@ extension UserAPI: WMAPI {
case .fetchProfileList:
return "/profile/list"
case .setProfile:
return "/profile/set"
return "/profile"
case .setUserName:
return "/username"
return "/name"
case .fetchPlayList:
return "/playlists"
case .fetchFavoriteSongs:
return "/likes"
case .editFavoriteSongsOrder:
return "/likes/edit"
return "/likes"
case .deleteFavoriteList:
return "/likes/delete"
case .editPlayListOrder:
return "/playlists/edit"
return "/playlists"
case .deletePlayList:
return "/playlists/delete"

Expand All @@ -79,33 +79,37 @@ extension UserAPI: WMAPI {

public var method: Moya.Method {
switch self {
case .setProfile, .setUserName:
return .post
case .fetchProfileList, .fetchPlayList,.fetchFavoriteSongs,.fetchUserInfo:
return .get
case .editFavoriteSongsOrder,.editPlayListOrder:
case .setProfile,.setUserName:
return .patch
case .deletePlayList, .deleteFavoriteList, .withdrawUserInfo:
case .withdrawUserInfo:
return .delete

case .editPlayListOrder,.editFavoriteSongsOrder:
return .put

case .deletePlayList, .deleteFavoriteList:
return .post
}
}

public var task: Moya.Task {
switch self {
case let .setProfile(image):
return .requestJSONEncodable(RequsetProfileModel(image: image))
case let .setProfile(type):
return .requestJSONEncodable(RequsetProfileModel(type: type))
case let .setUserName(name):
return .requestJSONEncodable(RequsetUserNameModel(username: name))
return .requestJSONEncodable(RequsetUserNameModel(name: name))
case .fetchProfileList, .fetchPlayList,.fetchFavoriteSongs,.fetchUserInfo,.withdrawUserInfo:
return .requestPlain
case .editFavoriteSongsOrder(ids: let ids):
return .requestJSONEncodable(RequsetEditFavoriteSongs(songs: ids))
return .requestJSONEncodable(RequsetEditFavoriteSongs(songIds: ids))
case .editPlayListOrder(ids: let ids):
return .requestJSONEncodable(RequsetEditPlayList(playlists: ids))
return .requestJSONEncodable(RequsetEditPlayList(playlistKeys: ids))
case let .deletePlayList(ids):
return .requestJSONEncodable(RequsetDeletePlayList(playlists: ids))
return .requestJSONEncodable(RequsetDeletePlayList(playlistKeys: ids))
case let .deleteFavoriteList(ids):
return .requestJSONEncodable(RequestDeleteFavoriteList(songs: ids))
return .requestJSONEncodable(RequestDeleteFavoriteList(songIds: ids))
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,24 @@
import Foundation

public struct FavoriteSongsResponseDTO: Decodable {
public let likes: Int
public let song: SingleSongResponseDTO
public let like: Int
public let id, title, artist, remix,reaction: String
public let date, start, end: Int
public let total:FavoriteSongsResponseDTO.Total

enum CodingKeys: String, CodingKey {
case title, artist, remix,reaction,date,start,end,total,like
case id = "songId"

}

}

extension FavoriteSongsResponseDTO{

public struct Total: Codable {
public let views,last:Int
public let increase:Int?
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import Utility
public extension FavoriteSongsResponseDTO {
func toDomain() -> FavoriteSongEntity {
FavoriteSongEntity(
likes: likes,
song: song.toDomain(),
likes: like,
song: SongEntity(id: id, title: title, artist: artist, remix: remix, reaction: reaction, views: total.views, last: total.last, date: date.changeDateFormat(origin: "yyMMdd", result: "yyyy.MM.dd")),
isSelected: false
)
}
Expand Down

0 comments on commit 580a9b2

Please sign in to comment.