Skip to content

Commit

Permalink
Merge pull request #46 from ttoklip/feat/#4_honey_tips_fragment
Browse files Browse the repository at this point in the history
Feat/#4 꿀팁 API 연동
  • Loading branch information
hangunhee39 authored Feb 17, 2024
2 parents 20be04e + 312f439 commit d28c1a5
Show file tree
Hide file tree
Showing 85 changed files with 5,295 additions and 2,762 deletions.
13 changes: 10 additions & 3 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


<application
android:name=".TtoklipApplication"
android:allowBackup="true"
Expand All @@ -34,10 +33,11 @@
android:screenOrientation="portrait"
android:exported="false" />
<activity
android:name=".presentation.honeytip.read.ReadActivity"
android:name=".presentation.honeytip.read.ReadHoneyTipActivity"
android:screenOrientation="portrait"
android:exported="false" />
<activity

android:name=".presentation.honeytip.write.WriteHoneyTipActivity"
android:screenOrientation="portrait"
android:exported="false"
Expand Down Expand Up @@ -162,7 +162,12 @@
<activity
android:screenOrientation="portrait"
android:name=".presentation.MainActivity"
android:exported="false"/>
android:exported="true">
<!--<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>-->
</activity>

<service
android:name="com.google.android.gms.metadata.ModuleDependencies"
Expand All @@ -182,6 +187,8 @@
android:screenOrientation="portrait"
android:exported="false" />
<activity android:name="com.umc.ttoklip.presentation.honeytip.ImageViewActivity" />
<activity android:name=".presentation.honeytip.read.ReadQuestionActivity" />

</application>

</manifest>
104 changes: 98 additions & 6 deletions app/src/main/java/com/umc/ttoklip/data/api/HoneyTipApi.kt
Original file line number Diff line number Diff line change
@@ -1,18 +1,110 @@
package com.umc.ttoklip.data.api

import com.umc.ttoklip.data.model.CreateHoneyTipRequest
import com.umc.ttoklip.data.model.CreateHoneyTipResponse
import com.umc.ttoklip.data.model.honeytip.CreateHoneyTipResponse
import com.umc.ttoklip.data.model.ResponseBody
import com.umc.ttoklip.data.model.TestResponse
import com.umc.ttoklip.data.model.honeytip.HoneyTipMainResponse
import com.umc.ttoklip.data.model.honeytip.InquireHoneyTipResponse
import com.umc.ttoklip.data.model.honeytip.InquireQuestionResponse
import com.umc.ttoklip.data.model.honeytip.request.ReportRequest
import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.DELETE
import retrofit2.http.GET
import retrofit2.http.Multipart
import retrofit2.http.PATCH
import retrofit2.http.POST
import retrofit2.http.Part
import retrofit2.http.Path

interface HoneyTipApi {
@GET("/")
suspend fun testGet(): Response<TestResponse>
@GET("/api/v1/common/main")
suspend fun getHoneyTipMain(): Response<ResponseBody<HoneyTipMainResponse>>

//꿀팁
@Multipart
@POST("/api/v1/honeytips/posts")
suspend fun postNewHoneyTip(@Body request: CreateHoneyTipRequest): Response<ResponseBody<CreateHoneyTipResponse>>
suspend fun postNewHoneyTip(
@Part("title") title: RequestBody,
@Part("content") content: RequestBody,
@Part("category") category: RequestBody,
@Part images: Array<MultipartBody.Part>,
@Part("url") url: RequestBody
): Response<ResponseBody<CreateHoneyTipResponse>>

@GET("/api/v1/honeytips/posts/{postId}")
suspend fun getHoneyTip(@Path("postId") honeyTipId: Int): Response<ResponseBody<InquireHoneyTipResponse>>

@POST("/api/v1/honeytips/posts/scrap/{postId}")
suspend fun postHoneyTipScrap(@Path("postId") honeyTipId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@DELETE("/api/v1/honeytips/posts/scrap/{postId}")
suspend fun deleteHoneyTipScrap(@Path("postId") honeyTipId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@POST("/api/v1/honeytips/posts/report/{postId}")
suspend fun postReportHoneyTip(
@Path("postId") honeyTipId: Int,
@Body request: ReportRequest
): Response<ResponseBody<CreateHoneyTipResponse>>

@POST("/api/v1/honeytips/posts/like/{postId}")
suspend fun postLikeHoneyTip(@Path("postId") honeyTipId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@DELETE("/api/v1/honeytips/posts/like/{postId}")
suspend fun deleteLikeHoneyTip(@Path("postId") honeyTipId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@DELETE("/api/v1/honeytips/posts/{postId}")
suspend fun deleteHoneyTip(@Path("postId") honeyTipId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@Multipart
@PATCH("/api/v1/honeytips/posts/{postId}")
suspend fun patchHoneyTip(
@Path("postId") honeyTipId: Int,
@Part("title") title: RequestBody,
@Part("content") content: RequestBody,
@Part("category") category: RequestBody,
@Part images: Array<MultipartBody.Part>,
@Part("url") url: RequestBody
): Response<ResponseBody<CreateHoneyTipResponse>>

//꿀팁 댓글
@POST("/api/v1/honeytip/comment/{postId}")
suspend fun postCommentHoneyTip(@Path("postId") honeyTipId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@POST("/api/v1/honeytip/comment/report/{commentId}")
suspend fun postReportCommentHoneyTip(@Path("commentId") honeyTipId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@DELETE("/api/v1/honeytip/comment/{commentId}")
suspend fun deleteCommentHoneyTip(@Path("commentId") honeyTipId: Int): Response<ResponseBody<CreateHoneyTipResponse>>


//질문
@Multipart
@POST("/api/v1/question/post")
suspend fun postNewQuestion(
@Part("title") title: RequestBody,
@Part("content") content: RequestBody,
@Part("category") category: RequestBody,
@Part images: Array<MultipartBody.Part>
): Response<ResponseBody<CreateHoneyTipResponse>>

@GET("/api/v1/question/post/{postId}")
suspend fun getQuestion(@Path("postId") questionId: Int): Response<ResponseBody<InquireQuestionResponse>>

@POST("/api/v1/question/post/report/{postId}")
suspend fun postReportQuestion(
@Path("postId") questionId: Int,
@Body request: ReportRequest
): Response<ResponseBody<CreateHoneyTipResponse>>

//질문 댓글
@POST("/api/v1/question/comment/{postId}")
suspend fun postCommentQuestion(@Path("postId") questionId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@POST("/api/v1/question/comment/report/{commentId}")
suspend fun postReportCommentQuestion(@Path("commentId") questionId: Int): Response<ResponseBody<CreateHoneyTipResponse>>

@DELETE("/api/v1/question/comment/{commentId}")
suspend fun deleteCommentQuestion(@Path("commentId") questionId: Int): Response<ResponseBody<CreateHoneyTipResponse>>
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.umc.ttoklip.data.model.honeytip

data class CommentResponse(
val commentId: Int,
val commentContent: String,
val parentId: Int,
val writer: String,
val writtenTime: String
)
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.umc.ttoklip.data.model
package com.umc.ttoklip.data.model.honeytip

data class CreateHoneyTipResponse(
val message: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.umc.ttoklip.data.model.honeytip

import java.io.Serializable

data class EditHoneyTip(
val postId: Int,
val title: String,
val content: String,
val category: String,
val image: Array<String>,
val url: String,
): Serializable
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.umc.ttoklip.data.model.honeytip

data class HoneyTipCategory(
val housework: List<HoneyTipMain>,
val cooking: List<HoneyTipMain>,
val safeLiving: List<HoneyTipMain>,
val welfarePolicy: List<HoneyTipMain>
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.umc.ttoklip.data.model.honeytip

data class HoneyTipMain(
val id: Int,
val title: String,
val content: String,
val writer: String?,
val likeCount: Int,
val commentCount: Int,
val scrapCount: Int,
val writtenTime: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.umc.ttoklip.data.model.honeytip

data class HoneyTipMainResponse(
val questionCategory: QuestionCategory,
val honeyTipCategory: HoneyTipCategory,
val topFiveQuestions: List<HoneyTipMain>
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.umc.ttoklip.data.model.honeytip

import java.io.Serializable

data class ImageUrl(
val imageUrl : String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.umc.ttoklip.data.model.honeytip


data class InquireHoneyTipResponse(
val honeyTipId: Int,
val title: String,
val content: String,
val writer: String?,
val writtenTime: String,
val category: String,
val imageUrls: List<ImageUrl>?,
val commentResponse: List<CommentResponse>?,
val urlResponses: List<Urls>?
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.umc.ttoklip.data.model.honeytip

data class InquireQuestionResponse(
val questionId: Int,
val title: String,
val content: String,
val writer: String?,
val writtenTime: String,
val category: String,
val imageUrls: List<ImageUrl>?,
val commentResponse: List<CommentResponse>?,
val urlResponses: List<String>?
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.umc.ttoklip.data.model.honeytip

data class QuestionCategory(
val housework: List<HoneyTipMain>,
val cooking: List<HoneyTipMain>,
val safeLiving: List<HoneyTipMain>,
val welfarePolicy: List<HoneyTipMain>
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.umc.ttoklip.data.model.honeytip

data class Urls(
val urls: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.umc.ttoklip.data.model.honeytip.request

data class ReportRequest(
val content: String,
val reportType: String
)

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package com.umc.ttoklip.data.repository.honeytip

import com.umc.ttoklip.data.model.honeytip.CreateHoneyTipResponse
import com.umc.ttoklip.data.model.honeytip.HoneyTipMainResponse
import com.umc.ttoklip.data.model.honeytip.InquireHoneyTipResponse
import com.umc.ttoklip.data.model.honeytip.InquireQuestionResponse
import com.umc.ttoklip.data.model.honeytip.request.ReportRequest
import com.umc.ttoklip.module.NetworkResult
import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.http.Body

interface HoneyTipRepository {
//꿀팁
suspend fun getHoneyTipMain(): NetworkResult<HoneyTipMainResponse>
suspend fun createHoneyTip(
title: RequestBody,
content: RequestBody,
category: RequestBody,
images: Array<MultipartBody.Part>,
url: RequestBody
): NetworkResult<CreateHoneyTipResponse>

suspend fun inquireHoneyTip(honeyTipId: Int): NetworkResult<InquireHoneyTipResponse>

suspend fun deleteHoneyTip(honeyTipId: Int): NetworkResult<CreateHoneyTipResponse>

suspend fun editHoneyTip(
honeyTipId: Int,
title: RequestBody,
content: RequestBody,
category: RequestBody,
images: Array<MultipartBody.Part>,
url: RequestBody
): NetworkResult<CreateHoneyTipResponse>

suspend fun reportHoneyTip(
honeyTipId: Int,
request: ReportRequest
): NetworkResult<CreateHoneyTipResponse>

//질문
suspend fun createQuestion(
title: RequestBody,
content: RequestBody,
category: RequestBody,
images: Array<MultipartBody.Part>
): NetworkResult<CreateHoneyTipResponse>

suspend fun inquireQuestion(questionId: Int): NetworkResult<InquireQuestionResponse>

suspend fun reportQuestion(
questionId: Int,
request: ReportRequest
): NetworkResult<CreateHoneyTipResponse>

}
Loading

0 comments on commit d28c1a5

Please sign in to comment.