Skip to content

Instantly share code, notes, and snippets.

View dubeboy's full-sized avatar
🌞
I may be slow to respond.

Divine Dube dubeboy

🌞
I may be slow to respond.
View GitHub Profile
package za.co.dubedivine.groceryapp.controller
import org.springframework.http.HttpStatus
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.*
import za.co.dubedivine.groceryapp.model.GroceryItem
import za.co.dubedivine.groceryapp.model.responseModel.StatusResponseEntity
import za.co.dubedivine.groceryapp.repository.GroceryItemRepository
@RestController
package za.co.dubedivine.groceryapp.controller
import org.springframework.web.bind.annotation.*
@RestController
@RequestMapping("groceries")
class GroceriesController(private val groceryRepository: GroceryItemRepository) {
}
[
{
"name": "Beans",
"id": 1,
"available": true
},
{
"name": "Eggs",
"id": 2,
"available": false
package za.co.dubedivine.groceryapp.model
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id
@Entity
data class GroceryItem(var name: String, var isAvailable: Boolean) {
package za.co.dubedivine.groceryapp.repository
import org.springframework.data.repository.CrudRepository
import org.springframework.stereotype.Repository
import za.co.dubedivine.groceryapp.model.GroceryItem
@Repository
interface GroceryItemRepository: CrudRepository<GroceryItem, Long>
@Query("select g from GroceryItem g where g.isAvailable = ?1")
fun findItemsByAvailability(availability: Boolean): List<GroceryItem>
@GetMapping
fun getGroceriesList(): MutableIterable<GroceryItem> {
return groceryRepository.findAll()
}
@PutMapping
fun addGroceryItem(@RequestBody groceryItem: GroceryItem): ResponseEntity<StatusResponseEntity<GroceryItem>> {
val savedItem = groceryRepository.save(groceryItem)
return ResponseEntity(StatusResponseEntity(
true,
"Added new grocery item to your list",
savedItem
), HttpStatus.CREATED)
}
package za.co.dubedivine.groceryapp.model.responseModel
data class StatusResponseEntity<T>(val status: Boolean, val message: String, val entity: T?)
package za.co.dubedivine.groceryapp.config
import org.springframework.boot.CommandLineRunner
import org.springframework.stereotype.Component
import za.co.dubedivine.groceryapp.model.GroceryItem
import za.co.dubedivine.groceryapp.repository.GroceryItemRepository
import javax.persistence.PrePersist
@Component
class DBHelper(private val groceryRepository: GroceryItemRepository) : CommandLineRunner {