https://maeilmail-api-docs.herokuapp.com/
- ํ์ ๊ฐ์
POST
/api/users- ์ด๋ฉ์ผ, ๋๋ค์ ์ค๋ณต ์ฌ๋ถ ํ์ธ
- bycrpt.hash๋ก ๋น๋ฐ๋ฒํธ ๋ณตํธํ
- ๋ก๊ทธ์ธ POST
/api/auth/login- bycrpt.compare๋ก ๋น๋ฐ๋ฒํธ ํ์ธ
- ๋ก๊ทธ์ธ ์ฑ๊ณต ์ JWT์ status ๋ฆฌํด
- ๊ตฌ๊ธ ์ ์ ํ์๊ฐ์
POST
/api/auth/login/google- ํ๋ก ํธ์์ ๋์ด์จ ๊ตฌ๊ธ email ์ค๋ณต ์ฌ๋ถ ํ์ธ
- ์ค๋ณต์ด ์๋๋ผ๋ฉด ํด๋น email๋ก ์์ ์ ์ ์ ๋ณด ์์ฑ
- โํ์ ํํดโ๋ผ๋ ๋จ์ด๋ก ๋น๋ฐ๋ฒํธ ํด์ฌํ
- ํ์ ์ ๋ณด ์กฐํ GET
/api/auth/me- ๋ฏธ๋ค์จ์ด๋ฅผ ํตํด ์ฌ์ฉ์์ userId ์ถ์ถ ํ ์ ๋ณด ์กฐํ
- sequelize์ include ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์์ ํ ์ด๋ธ (Favor, Language)๋ฅผ ๊ฐ์ด ์กฐํํจ
- ํ์ ์ ๋ณด ์์ PATCH
/api/auth/me- ํ์ฌ ๋น๋ฐ๋ฒํธ ์ผ์น ์ฌ๋ถ ํ์ธ ํ ๊ฐ์ธ์ ๋ณด ์์
- ์ด๋ฏธ์ง ์
๋ก๋ PATCH api/auth/me/image
- AWS-SDK, AWS-S3, MULTER ํจํค์ง ํ์ฉํ์ฌ ์ด๋ฏธ์ง ์ ๋ก๋ ์ฒ๋ฆฌ
- ๊ตฌ๊ธ ์ ์ ํ์ ์ ๋ณด ์์ PATCH
/api/auth/me?isGoogle=true- ํ์ ๊ฐ์ ์ ์ ๋ ฅ๋์ง ์์ ๋๋ค์, ๊ตญ๊ฐ ๋ฑ์ ์ถ๊ฐ๋ก ์ ๋ ฅ
- ํ์ ํํด PATCH
/api/auth/me/withdrawal- ํ์ฌ ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ์ ํ์ ํํด
- ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ผ์ ๊ธฐ๊ฐ ์ ์งํ๊ณ ์ patch ํ์ฉ
- ํ์ sql schedule ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ ์ ์ ๋ณด reset ๊ธฐ๋ฅ ๊ตฌํ ์์
- ์ฌ์ฉ์ ๊ฒ์ GET
/api/users?search={nickname}- ๋๋ค์์ ๊ธฐ์ค์ผ๋ก ๊ฒ์
- regexp์ ํ์ฉํ์ฌ ์ ํํ ์ผ์นํ๋ ๋๋ค์ ๊ฒ์ ๊ฒฐ๊ณผ ๋์ถ
- ์ฌ์ฉ์ ๋๋ค ์ถ์ฒ GET
/api/users?recommend=true- sequelize์ random ํจ์์ limit ์ต์ ์ ํ์ฉํ์ฌ ๋๋คํ 10๋ช ์ ์ฌ์ฉ์ ์ถ์ฒ
- ํน์ ์ฌ์ฉ์ ์ ๋ณด ํ์ธ GET
/api/users:{userId}- sequelize์ include ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์์ ํ ์ด๋ธ (Favor, Language)๋ฅผ ๊ฐ์ด ์กฐํํจ
- ํน์ ์ ์ ์๊ฒ ํธ์ง์ฐ๊ธฐ POST
/api/letters/:userId- ํ๋ก ํธ๋จ์์ ํธ์ง๋ณด๋ธ ์๊ฐ, ๋์ฐฉ ์๊ฐ, ๊ฑธ๋ฆฌ๋ ์๊ฐ๊ณผ ํธ์ง ๋ด์ฉ์ ๋ฐ์ ํธ์ง ๋ณด๋ด๊ธฐ
- node-scheduler๋ฅผ ์ด์ฉํด ์๊ฐ์ด๋๋ฉด is_arrived(ํธ์ง๊ฐ ๋์ฐฉํ๋์ง์ ๋ํ ์์ฑ)์ด 1๋ก ๋ณํ๋ค.
- ํน์ ์ ์ ์์ ๋ํ ๋ณด๊ธฐ **GET
/api/letters/:userId?page=- ํน์ ์ ์ ์์ ๋ํ ๋ชฉ๋ก์ ๋ถ๋ฌ์ด
- Sequelize๋ก Pagination ๊ธฐ๋ฅ์ ๊ตฌํํด, ๋ํ๋ฅผ ๋ถ๋ฌ์ฌ ๋ ํ์ด์ง๋น 10๊ฐ์ ์ชฝ์ง์ฉ ๋ถ๋ฌ์ค๋๋ก ํจ (์ ์ฒด ํ์ด์ง ์๋ ๋์ ์ผ๋ก ๊ตฌํด ํ๋ก ํธ๋จ์ผ๋ก ํจ๊ป ๋ณด๋)
- ๋ํํ ์ฌ๋๋ค ๋ชฉ๋ก GET
/api/letters/- ๋ํํ ์ฌ๋๋ค ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๋, Letter ํ ์ด๋ธ์ ๋ด์ฉ ๋ฟ์๋๋ผ Letterํ ์ด๋ธ์ด ์ฐธ์กฐํ๊ณ ์๋ User ํ ์ด๋ธ์ ๋ํํ ์ฌ๋๋ค์ ๊ธฐ๋ณธ์ ์ธ ์ ๋ณด๋ฅผ ํจ๊ป ๋ถ๋ฌ์จ๋ค.
- Letter ํ ์ด๋ธ์ is_read(์ฝ์๋์ง์ ๋ํ ์์ฑ)๊ฐ 0(์ ์ฝ์)์ธ ๊ฒ๋ค์ ๊ฐฏ์๋ count ๋ณ์์ ๋ด์ ํจ๊ป ๋ณด๋ด์ค๋ค.
- ์ต๊ทผ์ ๋์ฐฉํ ๋ชฉ๋ก GET
/api/letters/my/recent- ์ต๊ทผ์ ์จ ํธ์ง๋ค์ ๋ถ๋ฌ ์ค๋๋ฐ, is_arrived(ํธ์ง๊ฐ ๋์ฐฉํ๋์ง์ ๋ํ ์์ฑ) 1(๋์ฐฉ)์ธ ๊ฒ๋ค์ ๋ถ๋ฌ์จ๋ค
- ์ค๊ณ ์๋ ํธ์ง ๋ชฉ๋ก GET
/api/letters/my/incoming- ์ค๊ณ ์๋ ํธ์ง๋ค์ ๋ถ๋ฌ ์ค๋๋ฐ, is_arrived(ํธ์ง๊ฐ ๋์ฐฉํ๋์ง์ ๋ํ ์์ฑ) 0(๋ฐฐ๋ฌ ์ค)์ธ ๊ฒ๋ค์ ๋ถ๋ฌ์จ๋ค.
- ํน์ ์ ์ ์์ ํน์ ํธ์ง ํ์ธ GET
/api/letters/:userId/:letterId- ํธ์ง์ ๋ด์ฉ์ ํ์ธ
- ํธ์ง ์ฝ์ ์ฒ๋ฆฌ PATCH
/api/letters/:letterId- is_read(์ฝ์๋์ง์ ๋ํ ์์ฑ)์ ์ฝ์์ผ๋ก ์ฒ๋ฆฌ
- ํธ์ง ์ ์ฒด ์ญ์ PATCH
/api/letters/:userId- ํน์ ์ ์ ์์ ์ ์ฒด ๋ํ ๋ชฉ๋ก์ ์ญ์