Skip to content

Tugas Future Program #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion mvnw.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")

@REM Execute a user defined script before this one
@REM Execute a member defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package com.example.postgresdemo.controller;

import com.example.postgresdemo.exception.ResourceNotFoundException;
import com.example.postgresdemo.model.Member;
import com.example.postgresdemo.repository.MemberRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;

@RestController
public class MemberController {

@Autowired
private MemberRepository memberRepository;

@GetMapping("/member")
public Page<Member> getMember(Pageable pageable) {
return memberRepository.findAll(pageable);
}


@PostMapping("/member")
public Member createMember(@Valid @RequestBody Member member) {
return memberRepository.save(member);
}

@PutMapping("/member/{memberId}")
public Member updateMember(@PathVariable Long memberId,
@Valid @RequestBody Member memberRequest) {
return memberRepository.findById(memberId)
.map(member -> {
member.setName(memberRequest.getName());
return memberRepository.save(member);
}).orElseThrow(() -> new ResourceNotFoundException("Member not found with id " + memberId));
}


@DeleteMapping("/member/{memberId}")
public ResponseEntity<?> deleteUser(@PathVariable Long memberId) {
return memberRepository.findById(memberId)
.map(member -> {
memberRepository.delete(member);
return ResponseEntity.ok().build();
}).orElseThrow(() -> new ResourceNotFoundException("Member not found with id " + memberId));
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.example.postgresdemo.controller;

import com.example.postgresdemo.exception.ResourceNotFoundException;
import com.example.postgresdemo.model.Todo;
import com.example.postgresdemo.repository.TodoRepository;
import com.example.postgresdemo.repository.MemberRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;

@RestController
public class TodoController {

@Autowired
private TodoRepository todoRepository;

@Autowired
private MemberRepository memberRepository;

@GetMapping("/member/{memberId}/todo")
public List<Todo> getTodoByMemberId(@PathVariable Long memberId) {
return todoRepository.findByMemberId(memberId);
}

@PostMapping("/member/{memberId}/todo")
public Todo addTodo(@PathVariable Long memberId,
@Valid @RequestBody Todo todo) {
return memberRepository.findById(memberId)
.map(member -> {
todo.setMember(member);
return todoRepository.save(todo);
}).orElseThrow(() -> new ResourceNotFoundException("Member not found with id " + memberId));
}

@PutMapping("/member/{memberId}/todo/{todoId}")
public Todo updateTodo(@PathVariable Long memberId,
@PathVariable Long todoId,
@Valid @RequestBody Todo todoRequest) {
if(!memberRepository.existsById(memberId)) {
throw new ResourceNotFoundException("Member not found with id " + memberId);
}

return todoRepository.findById(todoId)
.map(todo -> {
todo.setTodo(todoRequest.getTodo());
return todoRepository.save(todo);
}).orElseThrow(() -> new ResourceNotFoundException("Todo not found with id " + todoId));
}

@DeleteMapping("/member/{memberId}/todo/{todoId}")
public ResponseEntity<?> deleteTodo(@PathVariable Long memberId,
@PathVariable Long todoId) {
if(!memberRepository.existsById(memberId)) {
throw new ResourceNotFoundException("Member not found with id " + memberId);
}

return todoRepository.findById(todoId)
.map(todo -> {
todoRepository.delete(todo);
return ResponseEntity.ok().build();
}).orElseThrow(() -> new ResourceNotFoundException("Todo not found with id " + todoId));

}
}
39 changes: 39 additions & 0 deletions src/main/java/com/example/postgresdemo/model/Member.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.example.postgresdemo.model;

import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

@Entity
@Table(name = "member")
public class Member extends AuditModel {
@Id
@GeneratedValue(generator = "member_generator")
@SequenceGenerator(
name = "member_generator",
sequenceName = "member_sequence",
initialValue = 1000
)
private Long id;

@NotBlank
@Size(min = 3, max = 100)
private String name;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}
49 changes: 0 additions & 49 deletions src/main/java/com/example/postgresdemo/model/Question.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,25 @@
import javax.persistence.*;

@Entity
@Table(name = "answers")
public class Answer extends AuditModel {
@Table(name = "todo")
public class Todo extends AuditModel {
@Id
@GeneratedValue(generator = "answer_generator")
@GeneratedValue(generator = "todo_generator")
@SequenceGenerator(
name = "answer_generator",
sequenceName = "answer_sequence",
name = "todo_generator",
sequenceName = "todo_sequence",
initialValue = 1000
)
private Long id;

@Column(columnDefinition = "text")
private String text;
private String todo;

@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "question_id", nullable = false)
@JoinColumn(name = "member_id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
@JsonIgnore
private Question question;
private Member member;

public Long getId() {
return id;
Expand All @@ -35,19 +35,19 @@ public void setId(Long id) {
this.id = id;
}

public String getText() {
return text;
public String getTodo() {
return todo;
}

public void setText(String text) {
this.text = text;
public void setTodo(String todo) {
this.todo = todo;
}

public Question getQuestion() {
return question;
public Member getMember() {
return member;
}

public void setQuestion(Question question) {
this.question = question;
public void setMember(Member member) {
this.member = member;
}
}
Loading