LanguagePreferenceController.java

package com.maybeitssquid.kafkaguaranteeslab.producer;

import com.maybeitssquid.kafkaguaranteeslab.model.LanguagePreference;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/language-preferences")
public class LanguagePreferenceController {

  private final LanguagePreferenceProducer producer;

  public LanguagePreferenceController(LanguagePreferenceProducer producer) {
    this.producer = producer;
  }

  @PostMapping
  public ResponseEntity<String> publish(@RequestBody LanguagePreference event) {
    producer.publish(event);
    return ResponseEntity.accepted().body("Event queued: " + event.customerId());
  }
}