@Service
class BrevoWebhookService() {
@PostMapping
fun storeWebhookResponse(@RequestBody webhook: WebhookResponse): ResponseEntity<HttpResponse> {
webhook.let { web ->
val user = customerRepository.findByEmailIgnoreCase(web.email)
user?.let {
val saveWebhook = StoreWebhookState(
event = web.event ,
id = web.id ,
email = web.email ,
ts = web.ts,
date = web.date ,
tags = web.tags ,
message_id = web.message_id,
sending_ip = web.sending_ip,
template_id = web.template_id,
subject = web.subject,
ts_epoch = web.ts_epoch,
customer = it)
}
}
....
*many other stuff*
...
}
Interface:
@FeignClient(name = "webhook", url = "/api/communication/webhooks")
interface WebhookInterface {
@PostMapping("/store")
fun storeWebhookResponse(@RequestBody webhook: WebhookResponse):
ResponseEntity<HttpResponse>
}