Skip to content

Commit 9cdd027

Browse files
committed
Scheduler Job added for automatic publishing the blog and removed EntityListner
1 parent 9a32fd9 commit 9cdd027

16 files changed

+227
-24
lines changed

src/main/java/com/example/cms/ContentManagementSystemApplication.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import org.springframework.boot.SpringApplication;
44
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
import org.springframework.scheduling.annotation.EnableScheduling;
56

67
@SpringBootApplication
8+
@EnableScheduling
79
public class ContentManagementSystemApplication {
810

911
public static void main(String[] args) {

src/main/java/com/example/cms/entity/BlogPost.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
@Entity
2727
@Getter
2828
@Setter
29-
@EntityListeners(AuditingEntityListener.class)
29+
//@EntityListeners(AuditingEntityListener.class)
3030
public class BlogPost {
3131

3232
@Id
@@ -42,14 +42,14 @@ public class BlogPost {
4242
@ManyToOne
4343
private Blog blog;
4444

45-
@CreatedBy
45+
//@CreatedBy
4646
private String createdBy;
4747
@CreatedDate
4848
@Column(updatable = false)
4949
private LocalDateTime createAt;
5050
@LastModifiedDate
5151
private LocalDateTime lastModifiedAt;
52-
@LastModifiedBy
52+
//@LastModifiedBy
5353
private String lastModifiedBy;
5454

5555
@OneToOne

src/main/java/com/example/cms/entity/Publish.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ public class Publish {
2020
private String scoDescription;
2121
private String scoTags;
2222

23-
@OneToOne
23+
@OneToOne(mappedBy = "publish")
2424
private BlogPost blogPost;
25+
26+
@OneToOne
27+
private Schedule schedule;
2528

2629
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.example.cms.entity;
2+
3+
import java.time.LocalDateTime;
4+
5+
import jakarta.persistence.Entity;
6+
import jakarta.persistence.GeneratedValue;
7+
import jakarta.persistence.GenerationType;
8+
import jakarta.persistence.Id;
9+
import lombok.Getter;
10+
import lombok.Setter;
11+
12+
@Entity
13+
@Getter
14+
@Setter
15+
public class Schedule {
16+
17+
@Id
18+
@GeneratedValue(strategy = GenerationType.IDENTITY)
19+
private int scheduleId;
20+
21+
22+
private LocalDateTime dateTime;
23+
24+
25+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.example.cms.enums;
22

33
public enum PostType {
4-
DRAFT,PUBLISHED;
4+
DRAFT,PUBLISHED,SCHEDULED;
55

66
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.example.cms.exception;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Getter;
5+
6+
@AllArgsConstructor
7+
@Getter
8+
public class ScheduleTimeNotValidException extends RuntimeException {
9+
private String message;
10+
11+
}

src/main/java/com/example/cms/repository/BlogPostRepository.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.example.cms.repository;
22

3+
import java.time.LocalDateTime;
4+
import java.util.Collection;
5+
import java.util.List;
36
import java.util.Optional;
47

58
import org.springframework.data.jpa.repository.JpaRepository;
@@ -12,4 +15,9 @@ public interface BlogPostRepository extends JpaRepository<BlogPost, Integer>{
1215

1316
Optional<BlogPost> findByPostIdAndPostType(int postId, PostType published);
1417

18+
19+
Collection<BlogPost> findAllByPublishScheduleDateTimeLessThanEqualAndPostType(LocalDateTime now,
20+
PostType scheduled);
21+
22+
1523
}

src/main/java/com/example/cms/repository/PublishRepository.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@
22

33
import org.springframework.data.jpa.repository.JpaRepository;
44

5+
import com.example.cms.entity.BlogPost;
56
import com.example.cms.entity.Publish;
7+
import com.example.cms.entity.Schedule;
68

79
public interface PublishRepository extends JpaRepository<Publish, Integer>{
810

11+
12+
913
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.example.cms.repository;
2+
3+
import java.time.LocalDateTime;
4+
import java.util.List;
5+
import java.util.Optional;
6+
7+
import org.springframework.data.jpa.repository.JpaRepository;
8+
9+
import com.example.cms.entity.Schedule;
10+
11+
public interface ScheduleRepository extends JpaRepository<Schedule, Integer>{
12+
13+
14+
}

src/main/java/com/example/cms/requestdto/PublishRequestEntity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.example.cms.requestdto;
22

3+
import com.example.cms.entity.Schedule;
4+
35
import jakarta.validation.constraints.NotNull;
46
import lombok.Getter;
57

@@ -10,5 +12,8 @@ public class PublishRequestEntity {
1012
private String scoTitle;
1113
private String scoDescription;
1214
private String scoTags;
15+
16+
17+
private ScheduleRequestEntity schedule;
1318

1419
}

0 commit comments

Comments
 (0)