Skip to content

Commit 35ffae4

Browse files
authored
Merge pull request #470 from codeforjapan/development
Release 1.0.0
2 parents 2d8aaf0 + 554e12b commit 35ffae4

File tree

6 files changed

+1297
-971
lines changed

6 files changed

+1297
-971
lines changed

nuxt.config.js

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ export default {
121121
['@nuxtjs/dotenv', { filename: `.env.${environment}` }],
122122
'nuxt-svg-loader',
123123
['nuxt-i18n', i18nConfig],
124+
['@nuxtjs/google-analytics', { id: process.env.GAID }],
124125
],
125126
/*
126127
** Axios module configuration
@@ -132,16 +133,6 @@ export default {
132133
families: ['Roboto&display=swap', 'NotoSansJP&&display=swap'],
133134
},
134135
},
135-
env: {
136-
APIKEY: process.env.APIKEY,
137-
AUTHDOMAIN: process.env.AUTHDOMAIN,
138-
DATABASEURL: process.env.DATABASEURL,
139-
PROJECTID: process.env.PROJECTID,
140-
STORAGEBUCKET: process.env.STORAGEBUCKET,
141-
MESSAGINGSENDERID: process.env.MESSAGINGSENDERID,
142-
APPID: process.env.APPID,
143-
MEASUREMENTID: process.env.MEASUREMENTID,
144-
},
145136
manifest: {
146137
name: 'おうちで時間割',
147138
short_name: 'おうちで時間割',

package.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -24,65 +24,65 @@
2424
}
2525
},
2626
"dependencies": {
27-
"@aws-amplify/api": "^3.2.6",
28-
"@babel/core": "^7.11.6",
29-
"@babel/runtime-corejs3": "^7.11.2",
27+
"@aws-amplify/api": "^3.2.7",
28+
"@babel/core": "^7.12.1",
29+
"@babel/runtime-corejs3": "^7.12.1",
3030
"@nuxt/typescript-runtime": "^2.0.0",
3131
"@nuxtjs/axios": "^5.12.2",
3232
"@nuxtjs/dotenv": "^1.4.1",
33-
"@nuxtjs/pwa": "^3.0.2",
33+
"@nuxtjs/google-analytics": "^2.4.0",
34+
"@nuxtjs/pwa": "^3.2.2",
3435
"@nuxtjs/style-resources": "^1.0.0",
35-
"@types/node": "^14.11.2",
36-
"aws-amplify": "^3.3.3",
37-
"cookieparser": "^0.1.0",
38-
"core-js": "3.6.5",
36+
"@types/node": "^14.11.8",
37+
"aws-amplify": "^3.3.4",
38+
"core-js": "^3.6.5",
3939
"cross-env": "^7.0.2",
4040
"date-fns": "^2.16.1",
41-
"dayjs": "^1.9.1",
41+
"dayjs": "^1.9.3",
4242
"express": "^4.17.1",
43-
"nuxt": "^2.14.6",
44-
"nuxt-i18n": "^6.15.1",
43+
"nuxt": "^2.14.7",
44+
"nuxt-i18n": "^6.15.3",
4545
"nuxt-property-decorator": "^2.8.8",
4646
"nuxt-svg-loader": "^1.2.0",
4747
"nuxt-webfontloader": "^1.1.0",
4848
"uuid": "^8.3.1",
4949
"vue-property-decorator": "^9.0.2",
50-
"vuetify": "^2.3.13",
50+
"vuetify": "^2.3.14",
5151
"vuex": "^3.5.1",
5252
"vuex-class-component": "^2.3.5"
5353
},
5454
"devDependencies": {
55-
"@mdi/font": "^5.6.55",
56-
"@nuxt/types": "^2.14.6",
55+
"@mdi/font": "^5.7.55",
56+
"@nuxt/types": "^2.14.7",
5757
"@nuxt/typescript-build": "^2.0.3",
5858
"@nuxtjs/eslint-config-typescript": "^3.0.0",
5959
"@nuxtjs/stylelint-module": "^4.0.0",
6060
"@types/jest": "^26.0.14",
6161
"@vue/test-utils": "^1.1.0",
6262
"babel-core": "^6.26.3",
6363
"babel-eslint": "^10.1.0",
64-
"babel-jest": "^26.3.0",
64+
"babel-jest": "^26.5.2",
6565
"cpx": "^1.5.0",
66-
"eslint": "^7.10.0",
66+
"eslint": "^7.11.0",
6767
"eslint-config-prettier": "^6.12.0",
6868
"eslint-loader": "^4.0.2",
6969
"eslint-plugin-nuxt": "^1.0.0",
7070
"eslint-plugin-prettier": "^3.1.4",
7171
"eslint-plugin-tsdoc": "^0.2.7",
7272
"husky": "^4.3.0",
73-
"jest": "^26.4.2",
73+
"jest": "^26.5.3",
7474
"lint-staged": "^10.4.0",
7575
"node-sass": "^4.14.1",
76-
"nodemon": "^2.0.4",
76+
"nodemon": "^2.0.5",
7777
"prettier": "^2.1.2",
7878
"rimraf": "^3.0.2",
7979
"sass-loader": "^10.0.3",
80-
"stylelint": "^13.7.1",
80+
"stylelint": "^13.7.2",
8181
"stylelint-config-prettier": "^8.0.2",
8282
"stylelint-config-standard": "^20.0.0",
8383
"stylelint-scss": "^3.18.0",
8484
"ts-jest": "^26.4.1",
85-
"ts-loader": "^8.0.4",
85+
"ts-loader": "^8.0.5",
8686
"vue": "^2.6.12",
8787
"vue-jest": "^3.0.7",
8888
"vue-server-renderer": "^2.6.12",

src/pages/user/classlist.vue

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,9 @@
5252
import Vue from 'vue'
5353
import BaseBottomSheetLayer from '@/components/BaseBottomSheetLayer.vue'
5454
import BaseActionButton from '@/components/BaseActionButton.vue'
55-
import { Auth, API, graphqlOperation } from 'aws-amplify'
55+
import { Auth, API } from 'aws-amplify'
5656
import { GraphQLResult } from '@aws-amplify/api'
5757
import { vxm } from '@/store'
58-
import { listClasss } from '@/graphql/queries'
5958
import { ListClasssQuery } from '@/API'
6059
6160
type DataType = {
@@ -77,11 +76,30 @@ export default Vue.extend({
7776
},
7877
async created() {
7978
const user = await Auth.currentAuthenticatedUser()
80-
const result = (await API.graphql(
81-
graphqlOperation(listClasss, {
79+
const listClasssSimple = /* GraphQL */ `
80+
query ListClasss(
81+
$filter: ModelClassFilterInput
82+
$limit: Int
83+
$nextToken: String
84+
) {
85+
listClasss(filter: $filter, limit: $limit, nextToken: $nextToken) {
86+
items {
87+
id
88+
school {
89+
name
90+
}
91+
className
92+
}
93+
nextToken
94+
}
95+
}
96+
`
97+
const result = (await API.graphql({
98+
query: listClasssSimple,
99+
variables: {
82100
filter: { owner: { eq: user.username } },
83-
})
84-
)) as GraphQLResult<ListClasssQuery>
101+
},
102+
})) as GraphQLResult<ListClasssQuery>
85103
this.items = (result?.data?.listClasss?.items as any[]).map((item) => {
86104
return {
87105
classId: item.id,

src/store/modules/classData.ts

Lines changed: 73 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { AppStore } from '@/store/modules/app'
88
import classData from '@/types/store/classData'
99
import { API, Auth, graphqlOperation } from 'aws-amplify'
1010
import { GRAPHQL_AUTH_MODE, GraphQLResult } from '@aws-amplify/api'
11-
import { getClass, listLessonsByClass } from '@/graphql/queries'
1211
import {
1312
createSchool,
1413
createClass,
@@ -22,6 +21,60 @@ type LessonsGroupedBy = {
2221
[key: string]: classData.LessonWithId[]
2322
}
2423

24+
const getClassSimple = /* GraphQL */ `
25+
query GetClass($id: ID!) {
26+
getClass(id: $id) {
27+
id
28+
className
29+
}
30+
}
31+
`
32+
33+
const listLessonsByClassSimple = /* GraphQL */ `
34+
query ListLessonsByClass(
35+
$classId: ID
36+
$startTime: ModelStringKeyConditionInput
37+
$sortDirection: ModelSortDirection
38+
$filter: ModelLessonFilterInput
39+
$limit: Int
40+
$nextToken: String
41+
) {
42+
listLessonsByClass(
43+
classId: $classId
44+
startTime: $startTime
45+
sortDirection: $sortDirection
46+
filter: $filter
47+
limit: $limit
48+
nextToken: $nextToken
49+
) {
50+
items {
51+
id
52+
startTime
53+
endTime
54+
title
55+
subject {
56+
name
57+
color
58+
}
59+
goal
60+
description
61+
videos {
62+
title
63+
url
64+
thumbnailUrl
65+
}
66+
pages
67+
materials {
68+
title
69+
url
70+
}
71+
isHidden
72+
}
73+
nextToken
74+
}
75+
}
76+
`
77+
2578
const VuexModule = createModule({
2679
namespaced: 'classData',
2780
strict: false,
@@ -42,17 +95,24 @@ const generateUniqueId = (): string => {
4295
return result + ''
4396
}
4497
// Generate a new Date object with a specified date & time
45-
const d = (date: Date, hours: number, minutes: number, seconds: number) => {
98+
const d = (
99+
date: Date,
100+
hours: number,
101+
minutes: number,
102+
seconds: number,
103+
milliseconds: number
104+
) => {
46105
const newDate = new Date(date)
47106
newDate.setHours(hours)
48107
newDate.setMinutes(minutes)
49108
newDate.setSeconds(seconds)
109+
newDate.setMilliseconds(milliseconds)
50110
return newDate
51111
}
52112

53113
const getFullDayArray = (date: Date) => {
54-
const start = d(date, 0, 0, 0)
55-
const end = d(date, 24, 0, 0)
114+
const start = d(date, 0, 0, 0, 0)
115+
const end = d(date, 24, 0, 0, 0)
56116
return [start, end]
57117
}
58118

@@ -64,7 +124,7 @@ export class ClassDataStore extends VuexModule implements classData.ClassData {
64124
@action
65125
public async lessonsOnCurrentDate(date: Date) {
66126
const lessons = (await API.graphql({
67-
query: listLessonsByClass,
127+
query: listLessonsByClassSimple,
68128
variables: {
69129
classId: this.classId,
70130
startTime: {
@@ -156,9 +216,10 @@ export class ClassDataStore extends VuexModule implements classData.ClassData {
156216

157217
@action
158218
public async loadClassData(classId: classData.ClassId) {
159-
const result = (await API.graphql(
160-
graphqlOperation(getClass, { id: classId })
161-
)) as GraphQLResult<GetClassQuery>
219+
const result = (await API.graphql({
220+
query: getClassSimple,
221+
variables: { id: classId },
222+
})) as GraphQLResult<GetClassQuery>
162223

163224
const classObject = result?.data?.getClass
164225
if (!classObject) {
@@ -188,11 +249,10 @@ export class ClassDataStore extends VuexModule implements classData.ClassData {
188249
do {
189250
classId = generateUniqueId()
190251
try {
191-
const result = (await API.graphql(
192-
graphqlOperation(getClass, {
193-
id: classId,
194-
})
195-
)) as GraphQLResult<GetClassQuery>
252+
const result = (await API.graphql({
253+
query: getClassSimple,
254+
variables: { id: classId },
255+
})) as GraphQLResult<GetClassQuery>
196256
classObject = result?.data?.getClass
197257
} catch {
198258
throw new Error('エラーによって処理に失敗しました')

tsconfig.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
"types": [
2020
"@types/node",
2121
"@nuxt/types",
22-
"@types/js-cookie",
2322
"@types/jest",
2423
"vuetify",
2524
"nuxt-i18n"

0 commit comments

Comments
 (0)