Skip to content

Commit

Permalink
Merge pull request #123 from STUDIO-EYE/feat/SCRUM-248-Recruitment
Browse files Browse the repository at this point in the history
Feat/scrum 248 recruitment
  • Loading branch information
minsu26 authored Sep 30, 2024
2 parents a0c5fba + fc316f2 commit 4695b29
Show file tree
Hide file tree
Showing 18 changed files with 1,435 additions and 4 deletions.
43 changes: 43 additions & 0 deletions build/asset-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"files": {
"main.css": "/static/css/main.60c3feea.css",
"main.js": "/static/js/main.aeec29e5.js",
"static/media/Pretendard-Bold.woff2": "/static/media/Pretendard-Bold.0c6f5e225ff28f456183.woff2",
"static/media/Pretendard-SemiBold.woff2": "/static/media/Pretendard-SemiBold.d5ded8ad2884e7855bb1.woff2",
"static/media/Pretendard-Medium.woff2": "/static/media/Pretendard-Medium.a9645bebe1a0010e66dc.woff2",
"static/media/Pretendard-Regular.woff2": "/static/media/Pretendard-Regular.38bed7de46e7b9049ced.woff2",
"static/media/Pretendard-Light.woff2": "/static/media/Pretendard-Light.1fc5521353ec20635e8e.woff2",
"static/media/defaultMainImg.jpg": "/static/media/defaultMainImg.d24d10b0847f4d273aa6.jpg",
"static/media/defaultTopImg.jpg": "/static/media/defaultTopImg.d24d10b0847f4d273aa6.jpg",
"static/media/backgroundImg.png": "/static/media/backgroundImg.b28248d440d70bdc208f.png",
"static/media/Mission.png": "/static/media/Mission.8f7d161f37b5f3aec2ad.png",
"static/media/pa-logo.png": "/static/media/pa-logo.77b3cf8fafbd96d74adb.png",
"static/media/circle.png": "/static/media/circle.08740893a51c20d62d8d.png",
"static/media/news.svg": "/static/media/news.b4bb8698c2cdaf427eb4c5bc04611148.svg",
"static/media/leftArrow.svg": "/static/media/leftArrow.f33e23f2bcbfb282c3b83ba2a7d4e1c0.svg",
"static/media/rightArrow.svg": "/static/media/rightArrow.840b3a5aaf3b3fb43c99a5aec3c3ec1d.svg",
"static/media/pageEdit.svg": "/static/media/pageEdit.18097d1ef7329e70c073f494b6fbadde.svg",
"static/media/infoIcon.svg": "/static/media/infoIcon.d157a35b448462e956ffea0322aaf4ff.svg",
"static/media/private.svg": "/static/media/private.df8af96f00a89cba1f3421c0ec7f170e.svg",
"index.html": "/index.html",
"static/media/request.svg": "/static/media/request.24e793b2a84bd82df3ce342a288e9b96.svg",
"static/media/public.svg": "/static/media/public.3d306c82483e0491c9e31f934ae39be2.svg",
"static/media/faq.svg": "/static/media/faq.f50e078823c399c6fc6b002d4de85c7b.svg",
"static/media/recruitment.svg": "/static/media/recruitment.34952c1df140d89e8d4e724e4ee6f793.svg",
"static/media/isNotPosted.svg": "/static/media/isNotPosted.44101d0e287f64546977cb522e7356d4.svg",
"static/media/isPosted.svg": "/static/media/isPosted.27c135636ded2cbe6b19603e92f5e09c.svg",
"static/media/artwork.svg": "/static/media/artwork.6908a8609df763e3e455750b92a21c1e.svg",
"static/media/home.svg": "/static/media/home.a5a15404137c5a97fffcc3da3249c0bf.svg",
"static/media/logout.svg": "/static/media/logout.a244ace49e833bacbb19ea04b5810b2d.svg",
"static/media/sortImg.svg": "/static/media/sortImg.d0e216908910df046dc17b2dd9f32750.svg",
"static/media/plusIcon.svg": "/static/media/plusIcon.0f1a9a2332ca037a92f75fcf0f5f27f4.svg",
"static/media/statistics.svg": "/static/media/statistics.3b7494be467e1fa8888c70a2e06d269d.svg",
"static/media/minusIcon.svg": "/static/media/minusIcon.eb3a9e3b8b63ebb3caaca57d065efe65.svg",
"main.60c3feea.css.map": "/static/css/main.60c3feea.css.map",
"main.aeec29e5.js.map": "/static/js/main.aeec29e5.js.map"
},
"entrypoints": [
"static/css/main.60c3feea.css",
"static/js/main.aeec29e5.js"
]
}
1 change: 1 addition & 0 deletions build/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.png"/><title>스튜디오아이 - ENJOY YOUR EYES</title><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="다양한 OTT 플랫폼과 Youtube를 기반으로 한 대한민국 NO.1뉴미디어 제작사 스튜디오아이입니다."/><meta name="keywords" content="OTT 플랫폼 제작사, Youtube 제작사, 미디어 제작사, 스튜디오, 스튜디오아이, Studio eye"/><link rel="apple-touch-icon" href="/favicon.png"/><link rel="manifest" href="/manifest.json"/><script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=6j4k1m9ul1"></script><meta name="google-site-verification" content="URn2t3ZNbd_grWxAFvmxD7glv7za6vvcCmJ7WrNFfD8"/><script defer="defer" src="/static/js/main.aeec29e5.js"></script><link href="/static/css/main.60c3feea.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
3 changes: 3 additions & 0 deletions build/static/js/main.aeec29e5.js

Large diffs are not rendered by default.

127 changes: 127 additions & 0 deletions build/static/js/main.aeec29e5.js.LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/

/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/

/*!
* Quill Editor v1.3.6
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/

/*!
* Quill Editor v1.3.7
* https://quilljs.com/
* Copyright (c) 2014, Jason Chen
* Copyright (c) 2013, salesforce.com
*/

/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

/**
* @license React
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

/**
* @remix-run/router v1.13.0
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/

/**
* React Router DOM v6.20.0
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/

/**
* React Router v6.20.0
*
* Copyright (c) Remix Software Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE.md file in the root directory of this source tree.
*
* @license MIT
*/

/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

/** @license React v17.0.2
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
1 change: 1 addition & 0 deletions build/static/js/main.aeec29e5.js.map

Large diffs are not rendered by default.

27 changes: 24 additions & 3 deletions src/Router.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import PAArtworkPage from './pages/PromotionAdmin/ArtworkPage/Artwork';
import PADataEditPage from './pages/PromotionAdmin/DataEditPage/index';
import PAStatisticsPage from './pages/PromotionAdmin/StatisticsPage/index';
import PAFaqPage from './pages/PromotionAdmin/FaqPage/index';
import PARecruitmentPage from './pages/PromotionAdmin/RecruitmentPage/index';
import PASettingPage from './pages/PromotionAdmin/SettingPage/index';
import PANewsPage from './pages/PromotionAdmin/NewsPage/index';
import PANewsWritePage from './pages/PromotionAdmin/NewsPage/NewsWritePage/NewsWritePage';
Expand All @@ -14,6 +15,8 @@ import PANewsEditPage from './pages/PromotionAdmin/NewsPage/NewsViewPage/NewsEdi
import PALayout from './components/PromotionAdmin/Layout/Layout';
import { PA_ROUTES, PA_ROUTES_CHILD, PP_ROUTES_CHILD } from '@/constants/routerConstants';
import FAQWritePage from './pages/PromotionAdmin/FaqPage/FAQWritePage';
import RecruitmentManagePage from './pages/PromotionAdmin/RecruitmentPage/RecruitmentManagePage';
import RecruitmentWritePage from './pages/PromotionAdmin/RecruitmentPage/RecruitmentWritePage';
import FAQManagePage from './pages/PromotionAdmin/FaqPage/FAQManagePage';
import PARequestDetailPage from '@/pages/PromotionAdmin/RequestPage/RequestCheckPage';
import FAQCheckPage from './pages/PromotionAdmin/FaqPage/FAQCheckPage';
Expand Down Expand Up @@ -216,17 +219,35 @@ const router = createBrowserRouter([
},
],
},
{
path: PA_ROUTES_CHILD.RECRUITMENT,
element: <PARecruitmentPage />,
children: [
{
path: `${PA_ROUTES.RECRUITMENT}/page_edit`,
element: <RecruitmentManagePage />,
},
{
path: `${PA_ROUTES.RECRUITMENT}/manage`,
element: <RecruitmentManagePage />,
},
{
path: `${PA_ROUTES.RECRUITMENT}/write`,
element: <RecruitmentWritePage />,
},
],
},
{
path: PA_ROUTES_CHILD.SETTING,
element: <PASettingPage />,
},
{
path: PA_ROUTES_CHILD.NEWS,
element: <PANewsPage/>,
children:[
element: <PANewsPage />,
children: [
{
path: `writing`,
element: <PANewsWritePage/>,
element: <PANewsWritePage />,
},
{
path:`:id`,
Expand Down
87 changes: 87 additions & 0 deletions src/apis/PromotionAdmin/recruitment.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import { PROMOTION_BASIC_PATH } from '@/constants/basicPathConstants';
import { IRecruitmentList } from '@/types/PromotionAdmin/recruitment';
import axios from 'axios';

export const postRecruitment = async (recruitmentData: {
title: string;
startDate: string;
deadline: string;
link: string;
}) => {
try {
const config = {
headers: {
'Content-Type': 'application/json',
},
};
const response = await axios.post(`${PROMOTION_BASIC_PATH}/api/recruitment`, recruitmentData, config);
return response.data;
} catch (error) {
console.error('[❌ Error creating recruitment]', error);
throw error;
}
};

export const getAllRecruitmentData = async (page: number, size: number): Promise<IRecruitmentList> => {
try {
console.log(`${PROMOTION_BASIC_PATH}/api/recruitment?page=${page - 1}&size=${size}`);
const response = await axios.get(`${PROMOTION_BASIC_PATH}/api/recruitment?page=${page - 1}&size=${size}`);

console.log(response.data.data);
return response.data.data;
} catch (error) {
console.log('[❌ Error fetching RecruitmentData]', error);
throw error;
}
};

// export const getRecruitmentList = async () => {
// try {
// const response = await axios.get('http://www.studioeye-promotion.kro.kr:8080/api/recruitment?page=0&size=10');
// console.log(response.data.data.content);
// return response.data.data;
// } catch (error) {
// console.log('[❌ Error fetching RecruitmentData]', error);
// throw error;
// }
// };

export const getRecruitmentData = async (id: number) => {
try {
const response = await axios.get(`${PROMOTION_BASIC_PATH}/api/recruitment/${id}`);
return response.data.data;
} catch (error) {
console.log(`[❌ Error fetching RecruitmentData for id: ${id}]`, error);
throw error;
}
};

export const updateRecruitmentData = async (recruitmentData: {
id: number;
title: string;
link: string;
startDate: string;
deadline: string;
}) => {
try {
const config = {
headers: {
'Content-Type': 'application/json',
},
};
const response = await axios.put(`${PROMOTION_BASIC_PATH}/api/recruitment`, recruitmentData, config);
return response.data;
} catch (error) {
console.log('[❌ Error updating RecruitmentData]', error);
throw error;
}
};

export const deleteRecruitmentData = async (id: number): Promise<void> => {
try {
await axios.delete(`${PROMOTION_BASIC_PATH}/api/recruitment/${id}`);
} catch (error) {
console.log('[❌Error delete RecruitmentData]', error);
throw error;
}
};
6 changes: 6 additions & 0 deletions src/assets/images/PA-Navigation/recruitment.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 7 additions & 1 deletion src/components/PromotionAdmin/Navigation/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { ReactComponent as PageEdit } from '@/assets/images/PA-Navigation/pageEd
import { ReactComponent as Statistics } from '@/assets/images/PA-Navigation/statistics.svg';
import { ReactComponent as Setting } from '@/assets/images/PA-Navigation/setting.svg';
import { ReactComponent as Faq } from '@/assets/images/PA-Navigation/faq.svg';
import { ReactComponent as Recruitment } from '@/assets/images/PA-Navigation/recruitment.svg';
import { ReactComponent as News } from '@/assets/images/PA-Navigation/news.svg';
import PALogo from '@/assets/images/PA-Navigation/pa-logo.png';
import NavBtn from './NavBtn';
Expand Down Expand Up @@ -43,7 +44,12 @@ const linksData = [
path: PA_ROUTES.NEWS,
pathName: 'News',
svgComponent: <News width={20} height={20} />,
}
},
{
path: `${PA_ROUTES.RECRUITMENT}/manage`,
pathName: 'Recruitment',
svgComponent: <Recruitment width={20} height={20} />,
},
];

const index = () => {
Expand Down
13 changes: 13 additions & 0 deletions src/components/PromotionAdmin/Recruitment/Components.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import styled from 'styled-components';

export const ContentBox = styled.div`
padding: 25px;
position: relative;
box-shadow: 2px 2px 5px 0.3px ${(props) => props.theme.color.black.pale};
margin-bottom: 30px;
margin-right: 30px;
border-radius: 4px;
background-color: ${(props) => props.theme.color.white.bold};
width: 38vw;
height: 800px;
`;
Loading

0 comments on commit 4695b29

Please sign in to comment.