Skip to content
Snippets Groups Projects
Commit 5b1bb307 authored by Gia Hy Nguyen's avatar Gia Hy Nguyen
Browse files

Implemented message creation endpoint and CORS configuration

parent 98a695bb
No related branches found
No related tags found
No related merge requests found
package ntnu.idatt2105.group44.trivioServer.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:5173")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.allowCredentials(true);
}
}
package ntnu.idatt2105.group44.trivioServer.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import ntnu.idatt2105.group44.trivioServer.model.Message;
import ntnu.idatt2105.group44.trivioServer.model.UserResponse;
import ntnu.idatt2105.group44.trivioServer.service.MessageService;
import java.util.List;
@RestController
@RequestMapping("/messages")
public class MessageController {
private final MessageService messageService;
@Autowired
public MessageController(MessageService messageService) {
this.messageService = messageService;
}
@PostMapping
public ResponseEntity<UserResponse> createMessage(@RequestBody Message message) {
try {
messageService.createMessage(message);
return ResponseEntity.ok(new UserResponse("Message sent. Thanks for feedback!"));
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body(new UserResponse("Failed to send message. Please try again later."));
}
}
@GetMapping
public ResponseEntity<List<Message>> getAllMessages() {
List<Message> messages = messageService.getAllMessages();
return ResponseEntity.ok(messages);
}
}
package ntnu.idatt2105.group44.trivioServer.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.time.LocalDateTime;
@Entity
@Table(name = "messages")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String senderName;
private String senderEmail;
private String content;
public Message() {
}
public Message(String senderName, String senderEmail, String content) {
this.senderName = senderName;
this.senderEmail = senderEmail;
this.content = content;
}
public Long getId() {
return id;
}
public String getSenderName() {
return senderName;
}
public void setSenderName(String senderName) {
this.senderName = senderName;
}
public String getSenderEmail() {
return senderEmail;
}
public void setSenderEmail(String senderEmail) {
this.senderEmail = senderEmail;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
package ntnu.idatt2105.group44.trivioServer.repository;
import ntnu.idatt2105.group44.trivioServer.model.Message;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface MessageRepository extends JpaRepository<Message, Long> {
List<Message> findBySenderName(String senderName);
}
\ No newline at end of file
package ntnu.idatt2105.group44.trivioServer.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import ntnu.idatt2105.group44.trivioServer.model.Message;
import ntnu.idatt2105.group44.trivioServer.repository.MessageRepository;
import java.util.List;
@Service
public class MessageService {
private final MessageRepository messageRepository;
@Autowired
public MessageService(MessageRepository messageRepository) {
this.messageRepository = messageRepository;
}
public Message createMessage(Message message) {
return messageRepository.save(message);
}
public List<Message> getAllMessages() {
return messageRepository.findAll();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment