Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

экраны создания проекта #196

Open
wants to merge 13 commits into
base: develop
Choose a base branch
from

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.innoprog.android.feature.projects.create.data

import retrofit2.Response
import retrofit2.http.Body
import retrofit2.http.POST

interface CreateProjectApi {
@POST("/v1/projects")
suspend fun setNewProject(@Body body: ProjectBody): Response<CreateResponse>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.innoprog.android.feature.projects.create.data

import com.innoprog.android.feature.projects.create.domain.CreateProjectRepository
import javax.inject.Inject

class CreateProjectRepositoryImpl @Inject constructor(private val api: CreateProjectApi) :
CreateProjectRepository {

private val body: ProjectBody? = null
override suspend fun createProject() {
if (body != null) {
api.setNewProject(body)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.innoprog.android.feature.projects.create.data

class CreateResponse(
val id: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.innoprog.android.feature.projects.create.data

import com.google.gson.annotations.SerializedName
import java.time.LocalDate

data class ProjectBody(
@SerializedName("data")
val data: ProjectInformation,
@SerializedName("logo")
val logo: String,
@SerializedName("attachments")
val attachments: List<String>
)

data class ProjectInformation(
@SerializedName("attachments")
val name: String,
@SerializedName("shortDescription")
val shortDescription: String,
@SerializedName("description")
val description: String,
@SerializedName("area")
val area: String,
@SerializedName("financingStage")
val financingStage: String,
@SerializedName("siteUrls")
val siteUrls: String,
@SerializedName("documentUrls")
val documentUrls: List<String>,
@SerializedName("deadline")
val deadline: LocalDate
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.innoprog.android.feature.projects.create.di

import com.innoprog.android.di.AppComponent
import com.innoprog.android.di.ScreenComponent
import dagger.Component

@Component(
dependencies = [AppComponent::class],
modules = [CreateProjectModule::class]
)
interface CreateProjectComponent : ScreenComponent {
@Component.Builder
interface Builder {
fun build(): CreateProjectComponent
fun appComponent(appComponent: AppComponent): CreateProjectComponent.Builder
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.innoprog.android.feature.projects.create.di

import androidx.lifecycle.ViewModel
import com.innoprog.android.di.ViewModelKey
import com.innoprog.android.feature.projects.create.data.CreateProjectApi
import com.innoprog.android.feature.projects.create.data.CreateProjectRepositoryImpl
import com.innoprog.android.feature.projects.create.domain.CreateProjectRepository
import com.innoprog.android.feature.projects.create.domain.CreateProjectUseCase
import com.innoprog.android.feature.projects.create.domain.impl.CreateProjectUseCaseImpl
import com.innoprog.android.feature.projects.create.presentation.CreateProjectViewModel
import dagger.Binds
import dagger.Module
import dagger.Provides
import dagger.multibindings.IntoMap
import retrofit2.Retrofit

@Module(includes = [CreateProjectModule.CreateProjectApiModule::class])
interface CreateProjectModule {

@IntoMap
@ViewModelKey(CreateProjectViewModel::class)
@Binds
fun bindCreateProjectViewModel(impl: CreateProjectViewModel): ViewModel

@Binds
fun provideCreateProjectUseCase(useCase: CreateProjectUseCaseImpl): CreateProjectUseCase

@Binds
fun provideCreateProjectRepository(repository: CreateProjectRepositoryImpl): CreateProjectRepository

@Module
class CreateProjectApiModule {
@Provides
fun provideApi(retrofit: Retrofit): CreateProjectApi {
return retrofit.create(CreateProjectApi::class.java)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.innoprog.android.feature.projects.create.domain

interface CreateProjectRepository {
suspend fun createProject()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.innoprog.android.feature.projects.create.domain

interface CreateProjectUseCase {
suspend fun createProject()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.innoprog.android.feature.projects.create.domain.impl

import com.innoprog.android.feature.projects.create.domain.CreateProjectRepository
import com.innoprog.android.feature.projects.create.domain.CreateProjectUseCase
import javax.inject.Inject

class CreateProjectUseCaseImpl @Inject constructor(val repository: CreateProjectRepository) : CreateProjectUseCase {
override suspend fun createProject() {
repository.createProject()
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.innoprog.android.feature.projects.domain.models
package com.innoprog.android.feature.projects.create.domain.model

data class DocumentsModel(
val documentURL: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.innoprog.android.feature.projects.domain.models
package com.innoprog.android.feature.projects.create.domain.model

import java.util.Date
import java.util.UUID
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.innoprog.android.feature.projects.domain.models
package com.innoprog.android.feature.projects.create.domain.model

import java.util.UUID

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.innoprog.android.feature.projects.chooseProjectDirection.domain.model
package com.innoprog.android.feature.projects.create.domain.model

@Suppress("Detekt.DataClassShouldBeImmutable")
data class ProjectDirectionModel(
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading