Skip to content

Commit

Permalink
Merge branch 'develop-mysql' into feature/#86-delete-post
Browse files Browse the repository at this point in the history
  • Loading branch information
5jisoo authored Jan 21, 2024
2 parents 1591243 + ee00db9 commit aaa712a
Show file tree
Hide file tree
Showing 50 changed files with 754 additions and 99 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ jobs:
run: echo "${{ secrets.DEV_OAUTH }}" > /home/runner/work/2023-POCHAK-server/2023-POCHAK-server/pochak/src/main/resources/application-OAUTH.properties
shell: bash

- name: add test setting file
run: echo "${{ secrets.DEV_TEST }}" > /home/runner/work/2023-POCHAK-server/2023-POCHAK-server/pochak/src/test/resources/application-TEST.properties
shell: bash

- name: add authkey file
run: echo "${{ secrets.DEV_AUTHKEY }}" > /home/runner/work/2023-POCHAK-server/2023-POCHAK-server/pochak/src/main/resources/static/AuthKey_D5ZQTHUQ4K.p8
shell: bash
Expand All @@ -58,10 +62,6 @@ jobs:
with:
arguments: build
build-root-directory: /home/runner/work/2023-POCHAK-server/2023-POCHAK-server/pochak

- name: 빌드 확인
run: ls -l /home/runner/work/2023-POCHAK-server/2023-POCHAK-server/pochak/build/libs
shell: bash

- name: Make zip file
run: zip -qq -r ./$GITHUB_SHA.zip .
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ POCHAK은 다른 사용자들이 당신의 일상을 기록하도록 하는 독
POCHAK은 사용자들이 서로의 순간에 참여하고 상호 작용할 수 있도록 하는 기능을 강조합니다. 댓글, 좋아요, 그리고 공유를 통해 순간들을 더 특별하게 만들어보세요!

### 🌟 프로필의 다양성
당신의 POCHAK 프로필은 다른 사람들이 기록한 당신의 순간들을 보여줍니다. 여러 시각으로부터의 사진들이 모여 하나의 아름다운 이야기를 만들어냅니다
당신의 POCHAK 프로필은 다른 사람들이 기록한 당신의 순간들을 보여줍니다. 여러 시각으로부터의 사진들이 모여 하나의 아름다운 이야기를 만들어냅니다.

## Server Team
> WWL, Troubleshooting, Team Rules 등은 [GitHub Wiki](https://github.com/APPS-sookmyung/2023-POCHAK-server/wiki)에서 확인할 수 있습니다.
Expand Down
2 changes: 1 addition & 1 deletion appspec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ hooks:
# runas: root
ApplicationStart:
- location: scripts/start.sh
runas: root
runas: root
1 change: 1 addition & 0 deletions pochak/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ AuthKey_D5ZQTHUQ4K.p8
application-API-KEY.properties
application-OAUTH.properties
application-JWT.properties
application-TEST.properties

# deploy
.tar
Expand Down
43 changes: 26 additions & 17 deletions pochak/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ java {
}

configurations {
asciidoctorExt
compileOnly {
extendsFrom annotationProcessor
}
asciidoctorExt
}

repositories {
Expand Down Expand Up @@ -54,39 +54,48 @@ dependencies {

tasks.named('test') {
useJUnitPlatform()
outputs.dir snippetsDir
}

ext {
snippetsDir = file('build/generated-snippets')
}

test {
outputs.dir snippetsDir
}

bootJar {
dependsOn asciidoctor
copy {
from "${asciidoctor.outputDir}"
into 'BOOT-INF/classes/static/docs'
}
}

asciidoctor {
dependsOn test
configurations 'asciidoctorExt'
inputs.dir snippetsDir
}

asciidoctor.doFirst {
delete file('src/main/resources/static/docs')
}

task copyDocument(type: Copy) {
bootJar {
dependsOn asciidoctor
from file("build/docs/asciidoc")
into file("src/main/resources/static/docs")
}

build {
dependsOn copyDocument
tasks.register('copyApiDocument') {
dependsOn asciidoctor
copy {
from "${asciidoctor.outputDir}"
into 'BOOT-INF/classes/static/docs'
}
copy {
from "${asciidoctor.outputDir}"
into 'src/main/resources/static/docs'
}
copy {
from file("build/docs/asciidoc")
into file("BOOT-INF/classes/static/docs")
}
copy {
from file("build/docs/asciidoc")
into file("src/main/resources/static/docs")
}
}

build {
dependsOn copyApiDocument
}
37 changes: 37 additions & 0 deletions pochak/src/docs/asciidoc/index.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
= POCHAK API Document
pochak server team~~
:doctype: book
:icons: font
:source-highlighter: highlishtjs
:toc: left
:toclevels: 4
:sectlinks:
:docinfo: shared-head

== Http Status Code

|===
| Status code | Usage

| `200 OK`
| The request completed successfully

| `201 Created`
| A new resource has been created successfully. The resource's URI is available from the response's
`Location` header

| `204 No Content`
| An update to an existing resource has been applied successfully

| `400 Bad Request`
| The request was malformed. The response body will include an error providing further information

| `404 Not Found`
| The requested resource did not exist
|===

== API List

=== Post

* link:post.html[Post API]
49 changes: 49 additions & 0 deletions pochak/src/docs/asciidoc/post.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
= POST API
:doctype: book
:icons: font
:source-highlighter: highlishtjs
:toc: left
:toclevels: 4
:sectlinks:

ifndef::snippets[]
:snippets: ./build/generated-snippets
endif::[]

== `POST` Upload Post API

게시물 업로드 API

=== Request

include::{snippets}/upload-post/curl-request.adoc[]
include::{snippets}/upload-post/request-parts.adoc[]

- request는 `application/json` 타입으로 다음과 같이 전달합니다.

```json
{
"caption" : "게시물 내용",
"taggedMemberHandleList" : ["habongee"]
}
```

include::{snippets}/upload-post/request-part-request-fields.adoc[]

=== Response

include::{snippets}/upload-post/response-body.adoc[]
include::{snippets}/upload-post/response-fields.adoc[]

== `GET` Post Details Retrieval API

게시물 상세 페이지 조회 API

=== Request
include::{snippets}/get-detail-post/http-request.adoc[]
include::{snippets}/get-detail-post/path-parameters.adoc[]
include::{snippets}/get-detail-post/request-headers.adoc[]

=== Response
include::{snippets}/get-detail-post/response-body.adoc[]
include::{snippets}/get-detail-post/response-fields.adoc[]
11 changes: 11 additions & 0 deletions pochak/src/main/java/com/apps/pochak/alarm/domain/Alarm.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,27 @@
import com.apps.pochak.global.BaseEntity;
import com.apps.pochak.member.domain.Member;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.BatchSize;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.SQLRestriction;

import static jakarta.persistence.FetchType.LAZY;
import static jakarta.persistence.GenerationType.IDENTITY;
import static jakarta.persistence.InheritanceType.SINGLE_TABLE;
import static lombok.AccessLevel.*;

@Entity
@Getter
@DynamicInsert
@BatchSize(size = 100)
@Inheritance(strategy = SINGLE_TABLE)
@SQLDelete(sql = "UPDATE alarm SET status = 'DELETED' WHERE id = ?")
@SQLRestriction("status = 'ACTIVE'")
@NoArgsConstructor(access = PROTECTED)
@DiscriminatorColumn(name = "alarmType")
public abstract class Alarm extends BaseEntity {
@Id
Expand All @@ -28,5 +34,10 @@ public abstract class Alarm extends BaseEntity {
@JoinColumn(name = "receiver_id")
private Member receiver;

@Column(columnDefinition = "boolean default false")
private Boolean isChecked;

protected Alarm(Member receiver) {
this.receiver = receiver;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
import jakarta.persistence.OneToOne;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

import static jakarta.persistence.CascadeType.ALL;
import static jakarta.persistence.FetchType.LAZY;
import static lombok.AccessLevel.PROTECTED;

@Entity
@Getter
@DynamicInsert
@NoArgsConstructor(access = PROTECTED)
@DiscriminatorValue("COMMENT")
public class CommentAlarm extends Alarm {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
import jakarta.persistence.OneToOne;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

import static jakarta.persistence.CascadeType.ALL;
import static jakarta.persistence.FetchType.LAZY;
import static lombok.AccessLevel.PROTECTED;

@Entity
@Getter
@DynamicInsert
@NoArgsConstructor(access = PROTECTED)
@DiscriminatorValue("FOLLOW")
public class FollowAlarm extends Alarm {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
package com.apps.pochak.alarm.domain;

import com.apps.pochak.likes.domain.LikeEntity;
import com.apps.pochak.like.domain.LikeEntity;
import jakarta.persistence.DiscriminatorValue;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToOne;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

import static jakarta.persistence.CascadeType.ALL;
import static jakarta.persistence.FetchType.LAZY;
import static lombok.AccessLevel.PROTECTED;

@Entity
@Getter
@DynamicInsert
@NoArgsConstructor(access = PROTECTED)
@DiscriminatorValue("LIKE")
public class LikeAlarm extends Alarm {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,33 @@
package com.apps.pochak.alarm.domain;

import com.apps.pochak.member.domain.Member;
import com.apps.pochak.tag.domain.Tag;
import jakarta.persistence.DiscriminatorValue;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToOne;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;

import static jakarta.persistence.CascadeType.ALL;
import static jakarta.persistence.FetchType.LAZY;
import static lombok.AccessLevel.PROTECTED;

@Entity
@Getter
@DynamicInsert
@NoArgsConstructor(access = PROTECTED)
@DiscriminatorValue("TAG_APPROVAL")
public class TagApprovalAlarm extends Alarm {
@OneToOne(fetch = LAZY, cascade = ALL)
@JoinColumn(name = "tag_approval_id")
private Tag tag;

@Builder
public TagApprovalAlarm(Member receiver, Tag tag) {
super(receiver);
this.tag = tag;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.SQLRestriction;

Expand All @@ -19,6 +20,7 @@

@Entity
@Getter
@DynamicInsert
@NoArgsConstructor(access = PROTECTED)
@SQLDelete(sql = "UPDATE comment SET status = 'DELETED' WHERE id = ?")
@SQLRestriction("status = 'ACTIVE'")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,18 @@
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.Optional;

public interface CommentRepository extends JpaRepository<Comment, Long> {

@Modifying
@Query("update Comment c set c.status = 'DELETED' " +
"where c.post = :post ")
void bulkDeleteByPost(@Param("post") final Post post);

@Query("select c from Comment c " +
"join fetch c.member " +
"where c.post = :post " +
"order by c.createdDate desc limit 1")
Optional<Comment> findFirstByPost(@Param("post") final Post post);
}

This file was deleted.

Loading

0 comments on commit aaa712a

Please sign in to comment.