spring-graphql-demo/src/main/kotlin/com/cubetiqs/graphql/demo/mutation/UserMutation.kt

22 lines
896 B
Kotlin
Raw Normal View History

package com.cubetiqs.graphql.demo.mutation
import com.cubetiqs.graphql.demo.context.GMutation
import com.cubetiqs.graphql.demo.domain.user.User
import com.cubetiqs.graphql.demo.domain.user.UserInput
import com.cubetiqs.graphql.demo.domain.user.UserMapper
import com.cubetiqs.graphql.demo.repository.UserRepository
import graphql.kickstart.tools.GraphQLMutationResolver
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.transaction.annotation.Propagation
import org.springframework.transaction.annotation.Transactional
@GMutation
class UserMutation @Autowired constructor(
private val userRepository: UserRepository,
) : GraphQLMutationResolver {
@Transactional(propagation = Propagation.REQUIRES_NEW)
fun createUser(input: UserInput): User {
val user = UserMapper.fromInputToUser(input)
return userRepository.save(user)
}
}