Skip to content

Commit

Permalink
#27 add create review endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
akselsf committed Sep 22, 2024
1 parent b4f2655 commit 70baef6
Show file tree
Hide file tree
Showing 6 changed files with 89 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,12 @@ import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.bind.annotation.PathVariable
import com.example.autobank.data.receipt.ReceiptInfo
import com.example.autobank.service.AuthenticationService
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestParam
import com.example.autobank.data.ReceiptReviewRequestBody
import com.example.autobank.data.receipt.ReceiptReview
import com.example.autobank.service.ReceiptReviewService


@RestController
Expand All @@ -25,6 +30,10 @@ class AdminReceiptController {
@Autowired
lateinit var authenticationService: AuthenticationService

@Autowired
lateinit var receiptReviewService: ReceiptReviewService


@GetMapping("/all")
fun getAllReceipts( @RequestParam from: Int, @RequestParam count: Int)
: ResponseEntity<List<ReceiptInfo>> {
Expand All @@ -44,5 +53,19 @@ class AdminReceiptController {
return ResponseEntity.ok(receiptAdminService.getReceipt(id))
}

@PostMapping("/review")
fun reviewReceipt(@RequestBody reviewBody: ReceiptReviewRequestBody): ResponseEntity<ReceiptReview> {
if (!authenticationService.checkBankomMembership()) {
return ResponseEntity.status(403).build()
}
try {
return ResponseEntity.ok(receiptReviewService.createReceiptReview(reviewBody));
} catch (e: Exception) {
println(e)
return ResponseEntity.badRequest().build()
}

}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.example.autobank.data

import jakarta.persistence.Entity


data class ReceiptReviewRequestBody (
val receiptId: Int,
val status: String,
val comment: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class ReceiptReview (
val comment: String,

@Column(name = "onlineuser_id")
var onlineUserId: Int?,
var onlineUserId: Int,

@CreationTimestamp
@Column(name = "createdat")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.example.autobank.repository.receipt


import com.example.autobank.data.receipt.ReceiptInfo
import com.example.autobank.data.receipt.ReceiptReview
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
import org.springframework.data.jpa.repository.Modifying
import org.springframework.transaction.annotation.Transactional

@Repository
interface ReceiptReviewRepository : JpaRepository<ReceiptReview, Int> {
fun findFirstByReceiptId(receiptId: Int): ReceiptReview?

@Modifying
@Transactional
fun deleteByReceiptId(receiptId: Int)

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.example.autobank.repository.receipt.ReceiptRepository
import org.springframework.beans.factory.annotation.Autowired
import com.example.autobank.repository.receipt.ReceiptInfoViewRepository
import com.example.autobank.data.receipt.*
import com.example.autobank.data.ReceiptReviewRequestBody


@Service
Expand Down Expand Up @@ -73,4 +74,8 @@ class ReceiptAdminService {
)

}

fun createReceiptReview(reviewBody: ReceiptReviewRequestBody) {

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.example.autobank.service

import com.example.autobank.data.ReceiptReviewRequestBody
import com.example.autobank.data.receipt.ReceiptRequestBody
import com.example.autobank.data.receipt.ReceiptReview
import com.example.autobank.repository.receipt.ReceiptReviewRepository
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service

@Service
class ReceiptReviewService {

@Autowired
lateinit var receiptReviewRepository: ReceiptReviewRepository

@Autowired
lateinit var onlineUserService: OnlineUserService

fun createReceiptReview(receiptReview: ReceiptReviewRequestBody): ReceiptReview {
val onlineuserid = onlineUserService.getOnlineUser()?.id ?: throw Exception("User not found")
if (receiptReview.status != "APPROVED" && receiptReview.status != "DENIED") {
throw Exception("Invalid status")
}
if (receiptReviewRepository.findFirstByReceiptId(receiptReview.receiptId) != null) {
println("Updating review")
receiptReviewRepository.deleteByReceiptId(receiptReview.receiptId)
}
return receiptReviewRepository.save(ReceiptReview(0, receiptReview.receiptId, receiptReview.status, receiptReview.comment, onlineuserid, null))

}
}

0 comments on commit 70baef6

Please sign in to comment.