diff --git a/.env.development b/.env.development new file mode 100644 index 0000000000000000000000000000000000000000..d1c68cc447c7a66006a78bdacd3608facee777ee --- /dev/null +++ b/.env.development @@ -0,0 +1 @@ +VUE_APP_API_HOST=http://localhost:3000 diff --git a/.env.production b/.env.production new file mode 100644 index 0000000000000000000000000000000000000000..4ea9aeeefd07ca950225eb465118f3c7ab777d6d --- /dev/null +++ b/.env.production @@ -0,0 +1 @@ +VUE_APP_API_HOST=https://api.fitmin.xyz diff --git a/.gitignore b/.gitignore index 4d7a7944771448bdd49d69195d74d718fabe699b..b686085ba50ea1f8e114bcdc13907914d8c4d43c 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,5 @@ typings/ # macOS .DS_Store + +dist/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0b4e410750c56497c8393c7fb8654acb7b83a05e..98d23a447c034b80a355194f3d41f1ba7bc4ba14 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,28 +1,43 @@ -image: node:latest +default: + image: node:latest + cache: + paths: + - node_modules/ + before_script: + - npm install stages: - lint - test - build + - deploy -cache: - paths: - - node_modules/ - -before_script: - - npm install - -job-lint: +lint: stage: lint script: - npm run lint -job-test: +test: stage: test script: - npm run test:unit -job-build: +build: stage: build script: - npm run build + +deployToS3: + stage: deploy + dependencies: + - job-build + before_script: + - curl "https://d1vvhvl2y92vvt.cloudfront.net/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + - unzip awscliv2.zip + - sudo ./aws/install + script: + - aws2 s3 rm s3://$S3_BUCKET_NAME/ --recursive + - aws2 s3 cp dist s3://$S3_BUCKET_NAME/ --recursive --acl public-read + when: manual + only: + - master diff --git a/src/router/index.js b/src/router/index.js index 02a5598926e42595eaaab6af2c7f0fd401e6105a..1acfeba0e428997c1c0a9de3e267dfc49cff5470 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -4,6 +4,24 @@ import VueRouter from 'vue-router'; import Store from '@/store/index'; import APISetting from '@/settings/api'; import Login from '@/views/Login.vue'; +import Main from '@/views/Main.vue'; +import DietList from '@/views/DietList.vue'; +import ProgramList from '@/views/ProgramList.vue'; +import ProgramCreate from '@/views/ProgramCreate.vue'; +import ProgramDetail from '@/views/ProgramDetail.vue'; +import ScheduleList from '@/views/ScheduleList.vue'; +import ScheduleCreate from '@/views/ScheduleCreate.vue'; +import ScheduleDetail from '@/views/ScheduleDetail.vue'; +import TraineeList from '@/views/TraineeList.vue'; +import TraineeCreate from '@/views/TraineeCreate.vue'; +import TraineeDetail from '@/views/TraineeDetail.vue'; +import TrainerList from '@/views/TrainerList.vue'; +import TrainerCreate from '@/views/TrainerCreate.vue'; +import TrainerDetail from '@/views/TrainerDetail.vue'; +import VoucherList from '@/views/VoucherList.vue'; +import VoucherCreate from '@/views/VoucherCreate.vue'; +import VoucherDetail from '@/views/VoucherDetail.vue'; + Vue.use(VueRouter); @@ -16,77 +34,87 @@ const routes = [ { path: '/main', name: 'Main', - component: () => import('@/views/Main.vue'), + component: Main, + }, + { + path: '/diet', + name: 'DietList', + component: DietList, }, { path: '/program', name: 'ProgramList', - component: () => import('@/views/ProgramList.vue'), + component: ProgramList, }, { path: '/program/create', name: 'ProgramCreate', - component: () => import('@/views/ProgramCreate.vue'), + component: ProgramCreate, }, { path: '/program/:id', name: 'ProgramDetail', - component: () => import('@/views/ProgramDetail.vue'), + component: ProgramDetail, }, { path: '/schedule', name: 'ScheduleList', - component: () => import('@/views/ScheduleList.vue'), + component: ScheduleList, }, { path: '/schedule/create', name: 'ScheduleCreate', - component: () => import('../views/ScheduleCreate.vue'), + component: ScheduleCreate, }, { path: '/schedule/:id', name: 'ScheduleDetail', - component: () => import('@/views/ScheduleDetail.vue'), + component: ScheduleDetail, }, { path: '/trainee', name: 'TraineeList', - component: () => import('@/views/TraineeList.vue'), + component: TraineeList, }, { path: '/trainee/create', name: 'TraineeCreate', - component: () => import('@/views/TraineeCreate.vue'), + component: TraineeCreate, }, { path: '/trainee/:id', name: 'TraineeDetail', - component: () => import('@/views/TraineeDetail.vue'), + component: TraineeDetail, }, { path: '/trainer', name: 'TrainerList', - component: () => import('@/views/TrainerList.vue'), + component: TrainerList, + }, + { + path: '/trainer/create', + name: 'TrainerCreate', + component: TrainerCreate, }, { path: '/trainer/:id', name: 'TrainerDetail', - component: () => import('@/views/TrainerDetail.vue'), + component: TrainerDetail, }, { path: '/voucher', name: 'VoucherList', - component: () => import('@/views/VoucherList.vue'), + component: VoucherList, }, { path: '/voucher/create', name: 'VoucherCreate', - component: () => import('@/views/VoucherCreate.vue'), + component: VoucherCreate, }, { path: '/voucher/:id', name: 'VoucherDetail', - component: () => import('@/views/VoucherDetail.vue'), + component: VoucherDetail, }, ]; diff --git a/src/settings/api.js b/src/settings/api.js index df8a2ad7109002b5acfb10feea4e2130f5a0c2e3..a0b1dcd9198fb9d0f1aa99aefba8b52cfb708199 100644 --- a/src/settings/api.js +++ b/src/settings/api.js @@ -1,4 +1,4 @@ -const host = 'http://localhost:3000'; +const host = process.env.VUE_APP_API_HOST; export default { endpoints: { @@ -10,6 +10,10 @@ export default { }, logout: `${host}/auth/logout`, }, + diet: { + list: `${host}/diet`, + detail: id => (`${host}/diet/${id}`), + }, program: { list: `${host}/program`, detail: id => (`${host}/program/${id}`),