Skip to content

Commit a9d11ba

Browse files
committed
feat(user): add user basic feature
1 parent 3f47b5d commit a9d11ba

File tree

3 files changed

+88
-0
lines changed

3 files changed

+88
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.andriawan.andresource.controller;
2+
3+
import com.andriawan.andresource.entity.User;
4+
import com.andriawan.andresource.repository.UserRepository;
5+
import java.util.List;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.web.bind.annotation.GetMapping;
9+
import org.springframework.web.bind.annotation.RestController;
10+
11+
@RestController
12+
public class UserController {
13+
@Autowired private UserRepository userRepository;
14+
15+
@GetMapping("/users")
16+
public ResponseEntity<List<User>> getAllUser() {
17+
List<User> users = userRepository.findAll();
18+
return ResponseEntity.ok(users);
19+
}
20+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.andriawan.andresource.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.GeneratedValue;
6+
import jakarta.persistence.GenerationType;
7+
import jakarta.persistence.Id;
8+
import jakarta.persistence.PrePersist;
9+
import jakarta.persistence.PreUpdate;
10+
import jakarta.persistence.Table;
11+
import java.time.ZonedDateTime;
12+
import lombok.AllArgsConstructor;
13+
import lombok.Builder;
14+
import lombok.Data;
15+
import lombok.NoArgsConstructor;
16+
17+
@Data
18+
@NoArgsConstructor
19+
@AllArgsConstructor
20+
@Builder
21+
@Entity
22+
@Table(name = "users")
23+
public class User {
24+
@Id
25+
@GeneratedValue(strategy = GenerationType.IDENTITY)
26+
private Long id;
27+
28+
@Column(nullable = false, length = 255)
29+
private String name;
30+
31+
@Column(nullable = false, length = 255)
32+
private String email;
33+
34+
@Column(nullable = false, length = 255)
35+
private String password;
36+
37+
@Column(name = "created_at", nullable = false)
38+
private ZonedDateTime createdAt;
39+
40+
@Column(name = "updated_at", nullable = false)
41+
private ZonedDateTime updatedAt;
42+
43+
@Column(name = "is_active", nullable = false)
44+
private Boolean isActive;
45+
46+
@Column(name = "is_deleted", nullable = false)
47+
private Boolean isDeleted;
48+
49+
@PrePersist
50+
protected void onCreate() {
51+
ZonedDateTime now = ZonedDateTime.now();
52+
this.createdAt = now;
53+
this.updatedAt = now;
54+
this.isActive = true;
55+
this.isDeleted = false;
56+
}
57+
58+
@PreUpdate
59+
protected void onUpdate() {
60+
this.updatedAt = ZonedDateTime.now();
61+
}
62+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.andriawan.andresource.repository;
2+
3+
import com.andriawan.andresource.entity.User;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface UserRepository extends JpaRepository<User, Long> {}

0 commit comments

Comments
 (0)