diff --git a/.github/workflows/dev-main-build.yml b/.github/workflows/dev-main-build.yml new file mode 100644 index 000000000..91eb7bc00 --- /dev/null +++ b/.github/workflows/dev-main-build.yml @@ -0,0 +1,31 @@ +name: dev-main-build + +on: + push: + branches: [ dev ] + paths: 'frontend/main' + pull_request: + branches: [ dev ] + paths: 'frontend/main' + + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + - name: Setup Node.js environment + uses: actions/setup-node@v2.1.4 + with: + node-version: 12 + - run: npm install + - run: npm run build \ No newline at end of file diff --git a/frontend/admin/.eslintrc.json b/frontend/admin/.eslintrc.json index 3f2e91909..51e3c342b 100644 --- a/frontend/admin/.eslintrc.json +++ b/frontend/admin/.eslintrc.json @@ -3,18 +3,14 @@ "extends": [ "plugin:@typescript-eslint/recommended", "plugin:react/recommended", - "plugin:prettier/recommended" + "plugin:prettier/recommended", + "plugin:prettier/react", + "plugin:prettier/@typescript-eslint" ], "plugins": ["@typescript-eslint", "react", "prettier"], "rules": { "react/react-in-jsx-scope": "off", - "react/display-name": 0, - "no-restricted-imports": [ - "error", - { - "patterns": ["../*"] - } - ] + "import/no-relative-parent-imports": "error" }, "globals": { "React": "writable" diff --git a/frontend/admin/next.config.js b/frontend/admin/next.config.js index 5b8b10428..4fd37304f 100644 --- a/frontend/admin/next.config.js +++ b/frontend/admin/next.config.js @@ -1,21 +1,9 @@ -const withBundleAnalyzer = require('@next/bundle-analyzer')({ - enabled: process.env.ANALYZE === 'true', +const withBundleAnalyzer = require("@next/bundle-analyzer")({ + enabled: process.env.ANALYZE === "true", }); module.exports = withBundleAnalyzer({ images: { - loader: 'cloudinary', - path: 'https://media.codingcat.dev/image/upload/', - }, - webpack: (config, { buildId, dev, isServer, defaultLoaders, webpack }) => { - if (!isServer) { - config.node = { - dgram: 'empty', - fs: 'empty', - net: 'empty', - tls: 'empty', - child_process: 'empty', - }; - } - return config; + loader: "cloudinary", + path: "https://media.codingcat.dev/images/", }, }); diff --git a/frontend/admin/package.json b/frontend/admin/package.json index e832934a4..b5b1ff50a 100644 --- a/frontend/admin/package.json +++ b/frontend/admin/package.json @@ -10,7 +10,7 @@ "analyze": "cross-env ANALYZE=true next build", "analyze:server": "cross-env BUNDLE_ANALYZE=server next build", "analyze:browser": "cross-env BUNDLE_ANALYZE=browser next build", - "lint": "eslint . --quiet --ext .ts,.tsx" + "lint": "eslint . --quiet --ext .ts,.tsx && tsc --noEmit" }, "dependencies": { "@emotion/cache": "^11.1.3", diff --git a/frontend/admin/src/components/ActiveLink.tsx b/frontend/admin/src/components/ActiveLink.tsx index 705d76cfc..e36fcb8be 100644 --- a/frontend/admin/src/components/ActiveLink.tsx +++ b/frontend/admin/src/components/ActiveLink.tsx @@ -2,7 +2,7 @@ import { withRouter } from 'next/router'; import Link from 'next/link'; import React, { Children } from 'react'; -function ActiveLink({ router, children, ...props }: any) { +const ActiveLink = ({ router, children, ...props }) => { const child = Children.only(children); let className = child.props.className || ''; @@ -17,6 +17,6 @@ function ActiveLink({ router, children, ...props }: any) { {React.cloneElement(child, { className })} ); -} +}; export default withRouter(ActiveLink); diff --git a/frontend/admin/src/components/Admin/AdminMenu.tsx b/frontend/admin/src/components/Admin/AdminMenu.tsx new file mode 100644 index 000000000..7a47ba6ae --- /dev/null +++ b/frontend/admin/src/components/Admin/AdminMenu.tsx @@ -0,0 +1,270 @@ +import Link from 'next/link'; + +import Blog from '../global/icons/Blog'; +import Community from '../global/icons/Community'; +import Courses from '../global/icons/Courses'; +import Podcasts from '../global/icons/Podcasts'; +import Tutorials from '../global/icons/Tutorials'; + +export default function AdminMenu({ router }) { + return ( + <> + {/* Off-canvas menu for mobile, show/hide based on off-canvas menu state. */} +
+
+ {/* +Off-canvas menu overlay, show/hide based on off-canvas menu state. + +Entering: "transition-opacity ease-linear duration-300" +From: "opacity-0" +To: "opacity-100" +Leaving: "transition-opacity ease-linear duration-300" +From: "opacity-100" +To: "opacity-0" +*/} + +
+ {/* Static sidebar for desktop */} +
+
+ {/* Sidebar component, swap this element with another sidebar if you like */} +
+
+ + +
Dashboard
+
+ +
+
+ +
+
+
+
+ + ); +} diff --git a/frontend/admin/src/components/Admin/AdminTopBar.tsx b/frontend/admin/src/components/Admin/AdminTopBar.tsx new file mode 100644 index 000000000..efa7bf15d --- /dev/null +++ b/frontend/admin/src/components/Admin/AdminTopBar.tsx @@ -0,0 +1,60 @@ +export default function AdminTopBar({ router }) { + return ( + <> +
+ +
+
+
+ +
+
+ {/* Heroicon name: search */} + +
+ +
+
+
+
+
+ + ); +} diff --git a/frontend/admin/src/components/Admin/EditPost.tsx b/frontend/admin/src/components/Admin/EditPost.tsx index 241509c4d..cad1f8e52 100644 --- a/frontend/admin/src/components/Admin/EditPost.tsx +++ b/frontend/admin/src/components/Admin/EditPost.tsx @@ -1,528 +1,93 @@ import React, { useState, useEffect } from 'react'; -import { - Box, - Grid, - Button, - makeStyles, - Tabs, - Tab, - AppBar, - createStyles, - Theme as AugmentedTheme, -} from '@material-ui/core'; -import { green, grey } from '@material-ui/core/colors'; -import matter from 'gray-matter'; -import TimeAgo from 'react-timeago'; -import { - postDataObservable, - postHistoriesDataObservable, - postHistoryCreate, - postHistoryPublish, - postHistoryUpdate, -} from '@/services/api'; -import { Post, PostStatus, PostType, MediaType } from '@/models/post.model.ts'; -import { Course } from '@/models/course.model.ts'; +import 'primereact/resources/primereact.min.css'; +import 'primeicons/primeicons.css'; +import 'primereact/resources/themes/saga-purple/theme.css'; +import { TabView, TabPanel } from 'primereact/tabview'; -import { debounce, switchMap, take } from 'rxjs/operators'; -import { interval, Subject } from 'rxjs'; -import Link from 'next/link'; -import ShowMDX from '@/components/ShowMDX'; -import PostHistories from '@/components/Admin/PostHistories'; -import CourseSections from '@/components/Admin/CourseSections'; +import { postDataObservable, postUpdate } from '@/services/api'; -import SimpleMDE from 'react-simplemde-editor'; -import 'easymde/dist/easymde.min.css'; -import CloudinaryUpload from '@/components/Cloudinary/CloudinaryUpload'; -import VideoFormModal from '@/components/Admin/VideoFormModal'; +// import renderToString from 'next-mdx-remote/render-to-string'; +// import hydrate from 'next-mdx-remote/hydrate'; +// import parse from 'remark-parse'; +// import mdx from 'remark-mdx'; -import ImageModal from '@/components/Admin/ImageModal'; -import VideoModal from '@/components/Admin/VideoModal'; -import PublishModal from '@/components/Admin/PublishModal'; +import Markdown from 'markdown-to-jsx'; -enum TabType { - edit = 'edit', - sections = 'sections', - preview = 'preview', -} - -const useStyles = makeStyles((theme: AugmentedTheme) => - createStyles({ - table: { - minWidth: 650, - }, - status: { - borderRadius: '0.25rem', - padding: '0.25rem', - }, - statusPublished: { - color: green[900], - backgroundColor: green[400], - }, - statusDraft: { - color: grey[900], - backgroundColor: grey[500], - }, - link: { - textDecoration: 'underline', - cursor: 'pointer', - }, - tabs: { - color: 'white', - backgroundColor: theme.palette.primary.main, - }, - }) -); - -export default function EditPost({ - router, - type, -}: { - router: any; - type: PostType; -}) { - const [postFound, setPostFound] = useState(false); - const [postHistories, setPostHistories] = useState([]); - const [history, setHistory] = useState(); - const [, setPost] = useState(); - const [, setPath] = useState(''); - const [tab, setTab] = useState(TabType.edit); - const [tabIndex, setTabIndex] = useState(0); - const [saving, setSaving] = useState(false); - const [updateContent$] = useState>( - new Subject() - ); - const [preview, setPreview] = useState(''); - const [showHistory, setShowHistory] = useState(false); +function EditPost({ router }) { + const [post, setPost] = useState(null); + const [path, setPath] = useState(null); + const [tab, setTab] = useState('edit'); + const [preview, setPreview] = useState(''); // Sets initial state useEffect(() => { - const path = `/posts/${router.query.id}`; + const path = + router.query.type === 'blog' + ? `/posts/${router.query.id}` + : `/${router.query.type}/${router.query.id}`; setPath(path); - setTab(TabType.edit); - setTabIndex(0); - // Set initial post to created - const postSubscribe = postDataObservable(path) - .pipe( - switchMap((post) => { - setPostFound(true); - setPost(post); - return postHistoriesDataObservable(post.id as string); - }) - ) - .subscribe((histories) => { - setPostHistories(histories); - if (histories.length > 0) { - const dbHistory = histories[0]; - - // Most likely this is the first time creation - // Update the frontmatter with the correct data - // the database - if (dbHistory) { - let title = dbHistory.title || ''; - let excerpt = dbHistory.excerpt || ''; - let slug = dbHistory.slug || ''; - - const fm = matter(dbHistory.content || ''); - if (fm && fm.data) { - if (fm.data.title) { - title = fm.data.title; - } - if (fm.data.excerpt) { - excerpt = fm.data.excerpt; - } - if (fm.data.slug) { - slug = fm.data.slug; - } - } - const content = matter.stringify(fm.content, { - title, - excerpt, - slug, - }); - dbHistory.content = content; - setHistory(dbHistory); - } - } - }); - - const contentSubscribe = updateContent$ - .pipe(debounce(() => interval(800))) - .subscribe((h) => { - setSaving(true); - - // We need a new version if the last history is published - if (h?.publishedAt) { - postHistoryCreate(h) - .pipe(take(1)) - .subscribe(() => { - setSaving(false); - }); - } else { - postHistoryUpdate(h) - .pipe(take(1)) - .subscribe(() => setSaving(false)); - } - }); - - return () => { - postSubscribe.unsubscribe(); - contentSubscribe.unsubscribe(); - }; + postDataObservable(path).subscribe((post) => { + setPost(post); + }); }, [router]); useEffect(() => { if (tab === 'preview') { - setPreview(history?.content || ''); } else { setPreview(''); } }, [tab]); - function handleChange(value: string) { - const content = value; - try { - const fm = matter(content); - if (history) { - if (fm.data.title) { - history.title = fm.data.title; - } - if (fm.data.excerpt) { - history.excerpt = fm.data.excerpt; - } - if (fm.data.slug) { - history.slug = fm.data.slug; - } - } - } catch (e) {} - const update: Post | Course = { ...history, content } as Post | Course; - setHistory(update); - updateContent$.next({ ...update, historyId: history?.id }); - } - - function toggleShowHistory() { - setShowHistory(!showHistory); + function handleChange(event) { + postUpdate(path, event.target.value); + setPost(event.target.value); } - - function selectTab(tab: TabType, index: number) { + function selectTab(tab) { setTab(tab); - setTabIndex(index); - } - - function onTab() { - switch (tab) { - case TabType.sections: - return ; - case TabType.preview: - return ( -
-
- -
-
- ); - default: - return ( - - ); - } } - const classes = useStyles(); - return ( <> - - {' '} - {history && Object.keys(history).length > 0 ? ( - <> - - - -

{history.title}

-
- - - {history.coverVideo ? ( - - - - ) : ( - - - - - )} - - - {history.coverPhoto ? ( - - - - ) : ( - - - - )} - - -
- - - -
- - - - {history.status} - - - toggleShowHistory()} - > - {history?.id} - - - - - - - {saving ? ( - - - - - - ) : ( - - - - - - )} - - - - - -
-
- - {showHistory ? ( - - ) : ( - <> - - - - selectTab(TabType.edit, 0)} - /> - selectTab(TabType.sections, 1)} - style={{ - display: `${ - type === PostType.course ? 'block' : 'none' - }`, - }} - /> - selectTab(TabType.preview, 2)} - /> - - - {onTab()} - - - )} - - - ) : ( -
- {postFound ? ( -
- Creating your first history of this post... -
- ) : ( -
- It appears you have found a page without data. -
- )} - - - - - -
- )} -
+
+
    +
  • selectTab('edit')} + > + Edit +
  • +
  • selectTab('preview')} + > + Preview +
  • +
+
+ {tab === 'edit' ? ( + + ) : ( +
+
+ {post ? post.post_content : ''} +
+
+ )} ); } + +export default EditPost; diff --git a/frontend/admin/src/components/Admin/EditPosts.tsx b/frontend/admin/src/components/Admin/EditPosts.tsx index 69719dc69..b5ca4c36c 100644 --- a/frontend/admin/src/components/Admin/EditPosts.tsx +++ b/frontend/admin/src/components/Admin/EditPosts.tsx @@ -2,90 +2,59 @@ import React, { useState, useEffect } from 'react'; import { DataTable } from 'primereact/datatable'; import { Column } from 'primereact/column'; import Link from 'next/link'; -import { makeStyles } from '@material-ui/core/styles'; -import Table from '@material-ui/core/Table'; -import TableBody from '@material-ui/core/TableBody'; -import TableCell from '@material-ui/core/TableCell'; -import TableContainer from '@material-ui/core/TableContainer'; -import TableHead from '@material-ui/core/TableHead'; -import TableRow from '@material-ui/core/TableRow'; -import Paper from '@material-ui/core/Paper'; -import { useUser } from '@/utils/auth/useUser'; -import { postsByUpdatedAtObservable } from '@/services/api'; -import { Post, PostStatus } from '@/models/post.model'; -import { green, grey } from '@material-ui/core/colors'; +import 'primereact/resources/primereact.min.css'; +import 'primeicons/primeicons.css'; +import 'primereact/resources/themes/saga-purple/theme.css'; -const useStyles = makeStyles({ - table: { - minWidth: 650, - }, - status: { - borderRadius: '0.25rem', - padding: '0.25rem', - }, - statusPublished: { - color: green[900], - backgroundColor: green[400], - }, - statusDraft: { - color: grey[900], - backgroundColor: grey[500], - }, -}); +import { useUser } from '@/utils/auth/useUser'; +import { postsObservable } from '@/services/api'; -function EditPosts({ path }: { path: string }) { - const { user, signout }: { user: any; signout: any } = useUser(); - const [posts, setPosts] = useState([]); +function EditPosts({ path }) { + const { user, logout }: { user: any; logout: any } = useUser(); + const [posts, setPosts] = useState([]); useEffect(() => { - postsByUpdatedAtObservable( - path.substring(1) === 'blog' ? 'post' : path.substring(1, path.length - 1) + postsObservable( + path.substring(1) === 'blog' ? 'posts' : path.substring(1) ).subscribe((posts) => setPosts(posts)); }, [path]); - const classes = useStyles(); + function postId(rowData) { + return ( + + {rowData.id} + + ); + } + function postCategories(rowData) { + return {rowData.post_categories.join(',')}; + } + function postStatus(rowData) { + return ( + + {rowData.post_status} + + ); + } return ( <> - - - - - Id - Title - Author - Status - Updated - - - - {posts.map((post) => ( - - - - {post.id} - - - {post.title} - {post.createdBy} - - {' '} - - {post.status} - - - {post.updatedAt} - - ))} - -
-
+ + + + + + + + ); } diff --git a/frontend/admin/src/components/FirebaseAuth.tsx b/frontend/admin/src/components/FirebaseAuth.tsx index e7f1a4c4d..b2c45c523 100644 --- a/frontend/admin/src/components/FirebaseAuth.tsx +++ b/frontend/admin/src/components/FirebaseAuth.tsx @@ -1,192 +1,73 @@ -import { useState } from 'react'; -import Link from 'next/link'; - import StyledFirebaseAuth from 'react-firebaseui/StyledFirebaseAuth'; -import firebaseApp from 'firebase/app'; +import firebase from 'firebase/app'; +import 'firebase/auth'; import initFirebase from '@/utils/initFirebase'; import { setUserCookie } from '@/utils/auth/userCookies'; import { mapUserData } from '@/utils/auth/mapUserData'; -import { useEffect } from 'react'; - -const FirebaseAuth = ({ full = true }) => { - const [app, setApp] = useState(); - const [email, setEmail] = useState(''); - const [password, setPassword] = useState(''); - const [ - firebaseAuthConfig, - setFirebaseAuthConfig, - ] = useState(); - - const setDynamicFirebase = async () => { - const app = await initFirebase(); - if (app) { - setApp(app); - } - }; - - useEffect(() => { - setDynamicFirebase(); - }, []); - useEffect(() => { - if (!app) { - return; - } - let signInOptions = []; - if (full) { - signInOptions = [ - firebaseApp.auth.EmailAuthProvider.PROVIDER_ID, - firebaseApp.auth.GoogleAuthProvider.PROVIDER_ID, - firebaseApp.auth.FacebookAuthProvider.PROVIDER_ID, - firebaseApp.auth.TwitterAuthProvider.PROVIDER_ID, - firebaseApp.auth.GithubAuthProvider.PROVIDER_ID, - 'apple.com', - 'microsoft.com', - 'yahoo.com', - ]; - } else { - signInOptions = [ - firebaseApp.auth.EmailAuthProvider.PROVIDER_ID, - firebaseApp.auth.GoogleAuthProvider.PROVIDER_ID, - firebaseApp.auth.TwitterAuthProvider.PROVIDER_ID, - firebaseApp.auth.GithubAuthProvider.PROVIDER_ID, - ]; - } - - // https://github.com/firebase/firebaseui-web#configure-oauth-providers - const config = { - signInFlow: 'popup', - signInOptions, - signInSuccessUrl: '/user/profile', - credentialHelper: 'none', - callbacks: { - signInSuccessWithAuthResult: async ( - { user }: { user: firebaseApp.User }, - redirectUrl: string - ) => { - const userData = await mapUserData(user); - setUserCookie(userData); - }, - }, - }; - setFirebaseAuthConfig(config as any); - }, [app]); +// Init the Firebase app. +initFirebase(); +// Auth providers +// https://github.com/firebase/firebaseui-web#configure-oauth-providers +const firebaseAuthConfig = { + signInFlow: 'popup', + signInOptions: [ + firebase.auth.GoogleAuthProvider.PROVIDER_ID, + firebase.auth.TwitterAuthProvider.PROVIDER_ID, + firebase.auth.GithubAuthProvider.PROVIDER_ID, + ], + credentialHelper: 'none', + callbacks: { + signInSuccessWithAuthResult: async ({ user }, redirectUrl) => { + const userData = await mapUserData(user); + setUserCookie(userData); + }, + }, +}; - function signin(email: string, password: string) { - if (app) { - app - .auth() - .signInWithEmailAndPassword(email, password) - .then((user) => { - console.log('Successfully SignedIn'); - }) - .catch((error) => { - console.log(error); - }); - } - } +const firebaseAuthFull = { + signInFlow: 'popup', + signInOptions: [ + { + provider: firebase.auth.EmailAuthProvider.PROVIDER_ID, + requireDisplayName: false, + }, + firebase.auth.GoogleAuthProvider.PROVIDER_ID, + firebase.auth.FacebookAuthProvider.PROVIDER_ID, + firebase.auth.TwitterAuthProvider.PROVIDER_ID, + firebase.auth.GithubAuthProvider.PROVIDER_ID, + firebase.auth.EmailAuthProvider.PROVIDER_ID, + 'apple.com', + 'microsoft.com', + 'yahoo.com', + ], + // signInSuccessUrl: '/', + credentialHelper: 'none', + callbacks: { + signInSuccessWithAuthResult: async ({ user }, redirectUrl) => { + const userData = await mapUserData(user); + setUserCookie(userData); + }, + }, +}; +const FirebaseAuth = ({ full = true }) => { return ( <> - {process.env.NEXT_PUBLIC_CCD_EMULATED ? ( -
-
- - setEmail(e.target.value)} - placeholder="alex@codingcat.dev" - required - /> -
-
- - setPassword(e.target.value)} - placeholder="******************" - required - /> -
-
- -
+ {full ? ( +
+
) : ( - <> - {app && firebaseAuthConfig ? ( - - ) : ( - <> - )} - +
+ +
)} ); diff --git a/frontend/admin/src/components/Home/Intro.tsx b/frontend/admin/src/components/Home/Intro.tsx new file mode 100644 index 000000000..1f6a11c7a --- /dev/null +++ b/frontend/admin/src/components/Home/Intro.tsx @@ -0,0 +1,23 @@ +import dynamic from 'next/dynamic'; + +const UserSignin = dynamic(() => import('@/components/UserSignin'), { + ssr: false, + loading: () => ( + <> +
+
+ + ), +}); + +export default function dIntro() { + return ( + <> +
+
+ +
+
+ + ); +} diff --git a/frontend/admin/src/components/OutsideClick.tsx b/frontend/admin/src/components/OutsideClick.tsx index 2be0c89ba..5eb37cbec 100644 --- a/frontend/admin/src/components/OutsideClick.tsx +++ b/frontend/admin/src/components/OutsideClick.tsx @@ -4,12 +4,12 @@ import PropTypes from 'prop-types'; /** * Hook that alerts clicks outside of the passed ref */ -function useOutsideClick(ref: any, toggle: any, value: any) { +function useOutsideClick(ref, toggle, value) { useEffect(() => { /** * Alert if clicked on outside of element */ - function handleClickOutside(event: any) { + function handleClickOutside(event) { if (ref.current && !ref.current.contains(event.target)) { toggle(value); } @@ -26,7 +26,7 @@ function useOutsideClick(ref: any, toggle: any, value: any) { /** * Component that alerts if you click outside of it */ -function OutsideClick(props: any) { +function OutsideClick(props) { const wrapperRef = useRef(null); const { toggle, value } = props; useOutsideClick(wrapperRef, toggle, value); diff --git a/frontend/admin/src/components/PostsCards.tsx b/frontend/admin/src/components/PostsCards.tsx new file mode 100644 index 000000000..d8b88e4d1 --- /dev/null +++ b/frontend/admin/src/components/PostsCards.tsx @@ -0,0 +1,56 @@ +import Link from 'next/link'; +import Image from 'next/image'; +import PropTypes from 'prop-types'; +function PostsCards({ posts, post_type }) { + return ( + <> + {posts.map((post) => ( +
+ +
+

+ + {post.post_title} + +

+

+ {post.post_excerpt} +

+
+
+ ))} + + ); +} +PostsCards.propTypes = { + posts: PropTypes.array.isRequired, +}; + +export default PostsCards; diff --git a/frontend/admin/src/components/RecentPostsCards.tsx b/frontend/admin/src/components/RecentPostsCards.tsx new file mode 100644 index 000000000..d1578cf25 --- /dev/null +++ b/frontend/admin/src/components/RecentPostsCards.tsx @@ -0,0 +1,102 @@ +import Link from 'next/link'; +import Image from 'next/image'; +import PropTypes from 'prop-types'; + +function RecentPostsCards({ recentPosts }) { + return ( + <> + {recentPosts.tutorials.map((post) => ( +
+
+ + + {post.post_title} + + +
+
+

+ {post.post_title} +

+

+ {post.post_excerpt} +

+
+
+ ))} + {recentPosts.post.map((post) => ( +
+
+ + + {post.post_title} + + +
+
+

+ {post.post_title} +

+

+ {post.post_excerpt} +

+
+
+ ))} + {recentPosts.podcasts.map((post) => ( +
+
+ + + {post.post_title} + + +
+
+

+ {post.post_title} +

+

+ {post.post_excerpt} +

+
+
+ ))} + + ); +} +RecentPostsCards.propTypes = { + recentPosts: PropTypes.object.isRequired, +}; + +export default RecentPostsCards; diff --git a/frontend/admin/src/components/RecentPostsList.tsx b/frontend/admin/src/components/RecentPostsList.tsx new file mode 100644 index 000000000..498d5fb94 --- /dev/null +++ b/frontend/admin/src/components/RecentPostsList.tsx @@ -0,0 +1,26 @@ +import Link from 'next/link'; + +import PropTypes from 'prop-types'; + +function RecentPostsList({ posts }) { + return ( +
+ {posts.map((post) => ( + + ))} +
+ ); +} +RecentPostsList.propTypes = { + recentPosts: PropTypes.array.isRequired, +}; + +export default RecentPostsList; diff --git a/frontend/admin/src/components/User/ProfileCard.tsx b/frontend/admin/src/components/User/ProfileCard.tsx index 983f33055..93b50de52 100644 --- a/frontend/admin/src/components/User/ProfileCard.tsx +++ b/frontend/admin/src/components/User/ProfileCard.tsx @@ -1,33 +1,36 @@ import Link from 'next/link'; -import dynamic from 'next/dynamic'; import { useUser } from '@/utils/auth/useUser'; -import Button from '@material-ui/core/Button'; - -const FirebaseAuth = dynamic(() => import('@/components/FirebaseAuth'), { - ssr: false, - loading: () =>

Playing with yarn...

, -}); - export default function UserSignin() { - const { user, signout }: { user: any; signout: any } = useUser(); + const { user, logout }: { user: any; logout: any } = useUser(); + + if (!user) { + return ( +
+

You must be signed in to access this page.

+ + + Signin + + +
+ ); + } return ( - <> - {user ? ( -
-

You`'`re signed in.

-

- Email: {user.email} -

- -
- ) : ( - - )} - +
+

You're signed in. Email: {user.email}

+ +
); } diff --git a/frontend/admin/src/components/UserSignin.tsx b/frontend/admin/src/components/UserSignin.tsx new file mode 100644 index 000000000..3e7d469f1 --- /dev/null +++ b/frontend/admin/src/components/UserSignin.tsx @@ -0,0 +1,150 @@ +import { useState } from 'react'; + +import dynamic from 'next/dynamic'; +import Link from 'next/link'; + +import { useUser } from '@/utils/auth/useUser'; +import Drip from '@/components/global/icons/Drip'; +import AJLogo from './global/icons/AJLogo'; +import AJLogoLeft from './global/icons/AJLogoLeft'; +import { sign } from 'crypto'; + +const FirebaseAuth = dynamic(() => import('@/components/FirebaseAuth'), { + ssr: false, + loading: () =>

Playing with yarn...

, +}); + +export default function UserSignin() { + const { user, logout }: { user: any; logout: any } = useUser(); + const [signin, setSignIn] = useState(false); + + return ( + <> + <> +
+
+
+
+ {' '} +
setSignIn(false)} + > + Sign Up +
+
+
+ {signin ? ( + + ) : ( + + )} +
+
+
setSignIn(true)} + > + Sign In +
+
+
+
+ +
+
+
+ + +
+
+ + +

+ Please choose a password. +

+
+
+ + + Forgot Password? + +
+
+
+
+
+
+ +
+
+
+ + + ); +} diff --git a/frontend/admin/src/components/global/icons/AJLogo.tsx b/frontend/admin/src/components/global/icons/AJLogo.tsx new file mode 100644 index 000000000..79c3a83aa --- /dev/null +++ b/frontend/admin/src/components/global/icons/AJLogo.tsx @@ -0,0 +1,141 @@ +export default function AJLogo({ className = 'block w-12 h-12' }) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/frontend/admin/src/components/global/icons/AJLogoLeft.tsx b/frontend/admin/src/components/global/icons/AJLogoLeft.tsx new file mode 100644 index 000000000..f0bff2071 --- /dev/null +++ b/frontend/admin/src/components/global/icons/AJLogoLeft.tsx @@ -0,0 +1,139 @@ +export default function AJLogoLeft({ className = 'block w-12 h-12' }) { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/frontend/admin/src/components/global/icons/Blog.tsx b/frontend/admin/src/components/global/icons/Blog.tsx new file mode 100644 index 000000000..33c80a419 --- /dev/null +++ b/frontend/admin/src/components/global/icons/Blog.tsx @@ -0,0 +1,194 @@ +export default function Blog() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/frontend/admin/src/components/global/icons/Community.tsx b/frontend/admin/src/components/global/icons/Community.tsx new file mode 100644 index 000000000..9315160df --- /dev/null +++ b/frontend/admin/src/components/global/icons/Community.tsx @@ -0,0 +1,46 @@ +export default function Community() { + return ( + + + + + + + + + + + + + + + + + + + ); +} diff --git a/frontend/admin/src/components/global/icons/Courses.tsx b/frontend/admin/src/components/global/icons/Courses.tsx new file mode 100644 index 000000000..a2c30da61 --- /dev/null +++ b/frontend/admin/src/components/global/icons/Courses.tsx @@ -0,0 +1,46 @@ +export default function Courses() { + return ( + + + + + + + + + + + + + + + + + + + ); +} diff --git a/frontend/admin/src/components/global/icons/Podcasts.tsx b/frontend/admin/src/components/global/icons/Podcasts.tsx new file mode 100644 index 000000000..73ebd1510 --- /dev/null +++ b/frontend/admin/src/components/global/icons/Podcasts.tsx @@ -0,0 +1,356 @@ +export default function Podcasts() { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/frontend/admin/src/components/global/icons/Tutorials.tsx b/frontend/admin/src/components/global/icons/Tutorials.tsx new file mode 100644 index 000000000..5c6872eb2 --- /dev/null +++ b/frontend/admin/src/components/global/icons/Tutorials.tsx @@ -0,0 +1,46 @@ +export default function Tutorials() { + return ( + + + + + + + + + + + + + + + + + + + ); +} diff --git a/frontend/admin/src/components/global/logos/TitleLogo.tsx b/frontend/admin/src/components/global/logos/TitleLogo.tsx index 4d1adf1de..8dff71892 100644 --- a/frontend/admin/src/components/global/logos/TitleLogo.tsx +++ b/frontend/admin/src/components/global/logos/TitleLogo.tsx @@ -1,5 +1,5 @@ -import AJLogo from '@/components/global/icons/AJPrimary'; -import AJLogoLeft from '@/components/global/icons/AJAlt'; +import AJLogo from '../icons/AJLogo'; +import AJLogoLeft from '../icons/AJLogoLeft'; import SloganNunito from './SloganNunito'; import TitleNunito from './TitleNunito'; diff --git a/frontend/admin/src/components/global/logos/TitleSloganLogo.tsx b/frontend/admin/src/components/global/logos/TitleSloganLogo.tsx index 11d0e554b..a7c58dbb5 100644 --- a/frontend/admin/src/components/global/logos/TitleSloganLogo.tsx +++ b/frontend/admin/src/components/global/logos/TitleSloganLogo.tsx @@ -1,5 +1,5 @@ -import AJLogo from '@/components/global/icons/AJPrimary'; -import AJLogoLeft from '@/components/global/icons/AJAlt'; +import AJLogo from '../icons/AJLogo'; +import AJLogoLeft from '../icons/AJLogoLeft'; import SloganNunito from './SloganNunito'; import TitleNunito from './TitleNunito'; diff --git a/frontend/admin/src/config/firebase.ts b/frontend/admin/src/config/firebase.ts index 672480d99..611469dd6 100644 --- a/frontend/admin/src/config/firebase.ts +++ b/frontend/admin/src/config/firebase.ts @@ -2,13 +2,12 @@ export const serviceAccountKey = { type: process.env.FIREBASE_SERVICE_TYPE, projectId: process.env.FIREBASE_SERVICE_PROJECT_ID, privateKeyId: process.env.FIREBASE_SERVICE_PRIVATE_KEY_ID, - privateKey: process.env.FIREBASE_SERVICE_PRIVATE_KEY, + privateKey: Buffer.from(`${process.env.FIREBASE_SERVICE_PRIVATE_KEY}`,'base64').toString(), clientEmail: process.env.FIREBASE_SERVICE_CLIENT_EMAIL, clientOd: process.env.FIREBASE_SERVICE_CLIENT_ID, authUri: process.env.FIREBASE_SERVICE_AUTH_URI, tokenUri: process.env.FIREBASE_SERVICE_TOKEN_URI, - authProviderX509CertUrl: - process.env.FIREBASE_SERVICE_AUTH_PROVIDER_X509_CERT_URL, + authProviderX509CertUrl: process.env.FIREBASE_SERVICE_AUTH_PROVIDER_X509_CERT_URL, clientX509CertUrl: process.env.FIREBASE_SERVICE_CLIENT_509_CERT_URL, }; diff --git a/frontend/admin/src/fonts/HennyPenny-Regular.ttf b/frontend/admin/src/fonts/HennyPenny-Regular.ttf new file mode 100644 index 000000000..77083fbcb Binary files /dev/null and b/frontend/admin/src/fonts/HennyPenny-Regular.ttf differ diff --git a/frontend/admin/src/graphql/schema.json~HEAD b/frontend/admin/src/graphql/schema.json~HEAD new file mode 100644 index 000000000..eabe31a1b --- /dev/null +++ b/frontend/admin/src/graphql/schema.json~HEAD @@ -0,0 +1,6226 @@ +{ + "data" : { + "__schema" : { + "queryType" : { + "name" : "Query" + }, + "mutationType" : { + "name" : "Mutation" + }, + "subscriptionType" : { + "name" : "Subscription" + }, + "types" : [ { + "kind" : "OBJECT", + "name" : "Query", + "description" : null, + "fields" : [ { + "name" : "searchPosts", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchablePostFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "sort", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchablePostSortInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "from", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "SearchablePostConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "getBlog", + "description" : null, + "args" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Blog", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "listBlogs", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelBlogConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "getPost", + "description" : null, + "args" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Post", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "listPosts", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelPostConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "getComment", + "description" : null, + "args" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Comment", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "listComments", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelCommentConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "getCategory", + "description" : null, + "args" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Category", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "listCategorys", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelCategoryConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "getVodAsset", + "description" : null, + "args" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "vodAsset", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "listVodAssets", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelvodAssetConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "listVideoObjects", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelvideoObjectConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "getVideoObject", + "description" : null, + "args" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "SearchablePostConnection", + "description" : null, + "fields" : [ { + "name" : "items", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "Post", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "nextToken", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "total", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Post", + "description" : null, + "fields" : [ { + "name" : "id", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_type", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_title", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_tags", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_content", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_excerpt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_status", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "comment_status", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ping_status", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "comment_count", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_featured_image", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "blog", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Blog", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createdAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updatedAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "comments", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "sortDirection", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelSortDirection", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelCommentConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "category", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "sortDirection", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelSortDirection", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelCategoryConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "ID", + "description" : "Built-in ID", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "String", + "description" : "Built-in String", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "Boolean", + "description" : "Built-in Boolean", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "Int", + "description" : "Built-in Int", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Blog", + "description" : null, + "fields" : [ { + "name" : "id", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "title", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "posts", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "sortDirection", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelSortDirection", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelPostConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createdAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updatedAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "ModelPostConnection", + "description" : null, + "fields" : [ { + "name" : "items", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "Post", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "nextToken", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_type", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_title", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_name", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_tags", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_content", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_excerpt", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBooleanInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBooleanInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ping_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBooleanInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_count", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIntInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_featured_image", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostFilterInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "contains", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "notContains", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "beginsWith", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "size", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelSizeInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "description" : null, + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "binary", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "binarySet", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "bool", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "list", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "map", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "number", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "numberSet", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "string", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "stringSet", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "_null", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelSizeInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "contains", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "notContains", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "beginsWith", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "size", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelSizeInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelBooleanInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelIntInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "ModelSortDirection", + "description" : null, + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "ASC", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "DESC", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "description" : "The `AWSDateTime` scalar type provided by AWS AppSync, represents a valid ***extended*** [ISO 8601 DateTime](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) string. In other words, this scalar type accepts datetime strings of the form `YYYY-MM-DDThh:mm:ss.SSSZ`. The scalar can also accept \"negative years\" of the form `-YYYY` which correspond to years before `0000`. For example, \"**-2017-01-01T00:00Z**\" and \"**-9999-01-01T00:00Z**\" are both valid datetime strings. The field after the two digit seconds field is a nanoseconds field. It can accept between 1 and 9 digits. So, for example, \"**1970-01-01T12:00:00.2Z**\", \"**1970-01-01T12:00:00.277Z**\" and \"**1970-01-01T12:00:00.123456789Z**\" are all valid datetime strings. The seconds and nanoseconds fields are optional (the seconds field must be specified if the nanoseconds field is to be used). The [time zone offset](https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators) is compulsory for this scalar. The time zone offset must either be `Z` (representing the UTC time zone) or be in the format `±hh:mm:ss`. The seconds field in the timezone offset will be considered valid even though it is not part of the ISO 8601 standard.", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "ModelCommentConnection", + "description" : null, + "fields" : [ { + "name" : "items", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "Comment", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "nextToken", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Comment", + "description" : null, + "fields" : [ { + "name" : "id", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "content", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Post", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createdAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updatedAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "owner", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "content", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentFilterInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "ModelCategoryConnection", + "description" : null, + "fields" : [ { + "name" : "items", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "Category", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "nextToken", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Category", + "description" : null, + "fields" : [ { + "name" : "id", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Post", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createdAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updatedAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "name", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryFilterInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "SearchablePostFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableIDFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_type", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableStringFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_title", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableStringFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_name", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableStringFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_tags", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableStringFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_content", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableStringFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_excerpt", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableStringFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableBooleanFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableBooleanFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ping_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableBooleanFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_count", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableIntFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_featured_image", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchableStringFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchablePostFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchablePostFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "SearchablePostFilterInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "SearchableIDFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gte", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lte", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "match", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "matchPhrase", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "matchPhrasePrefix", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "multiMatch", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "exists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "wildcard", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "regexp", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "range", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "SearchableStringFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gte", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lte", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "match", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "matchPhrase", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "matchPhrasePrefix", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "multiMatch", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "exists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "wildcard", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "regexp", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "range", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "SearchableBooleanFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "SearchableIntFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gte", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lte", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "range", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "SearchablePostSortInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "field", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "SearchablePostSortableFields", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "direction", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "SearchableSortDirection", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "SearchablePostSortableFields", + "description" : null, + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "id", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_type", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_title", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_name", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_tags", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_content", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_excerpt", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_status", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "comment_status", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ping_status", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "comment_count", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "post_featured_image", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "SearchableSortDirection", + "description" : null, + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "asc", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "desc", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "ModelBlogConnection", + "description" : null, + "fields" : [ { + "name" : "items", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "Blog", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "nextToken", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "title", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogFilterInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "vodAsset", + "description" : null, + "fields" : [ { + "name" : "id", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "title", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createdAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updatedAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "video", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "videoObject", + "description" : null, + "fields" : [ { + "name" : "id", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "token", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createdAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updatedAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "ModelvodAssetConnection", + "description" : null, + "fields" : [ { + "name" : "items", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "vodAsset", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "nextToken", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "title", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "description", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetFilterInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "ModelvideoObjectConnection", + "description" : null, + "fields" : [ { + "name" : "items", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "nextToken", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "token", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectFilterInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Mutation", + "description" : null, + "fields" : [ { + "name" : "createBlog", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "CreateBlogInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Blog", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updateBlog", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "UpdateBlogInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Blog", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deleteBlog", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "DeleteBlogInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Blog", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createPost", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "CreatePostInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Post", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updatePost", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "UpdatePostInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Post", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deletePost", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "DeletePostInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Post", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createComment", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "CreateCommentInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Comment", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updateComment", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "UpdateCommentInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Comment", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deleteComment", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "DeleteCommentInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Comment", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createCategory", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "CreateCategoryInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Category", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updateCategory", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "UpdateCategoryInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Category", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deleteCategory", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "DeleteCategoryInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Category", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createVodAsset", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "CreateVodAssetInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "vodAsset", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updateVodAsset", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "UpdateVodAssetInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "vodAsset", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deleteVodAsset", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "DeleteVodAssetInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "vodAsset", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createVideoObject", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "CreateVideoObjectInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updateVideoObject", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "UpdateVideoObjectInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deleteVideoObject", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "DeleteVideoObjectInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "CreateBlogInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "title", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogConditionInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "title", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBlogConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "UpdateBlogInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "title", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "DeleteBlogInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "CreatePostInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_type", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "post_title", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "post_name", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "post_tags", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + } + }, + "defaultValue" : null + }, { + "name" : "post_content", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_excerpt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_status", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_status", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ping_status", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_count", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_featured_image", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "postBlogId", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostConditionInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "post_type", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_title", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_name", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_tags", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_content", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_excerpt", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBooleanInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBooleanInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ping_status", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelBooleanInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_count", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIntInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_featured_image", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelPostConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "UpdatePostInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "post_type", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_title", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_name", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_tags", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + } + }, + "defaultValue" : null + }, { + "name" : "post_content", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_excerpt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_status", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_status", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ping_status", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "comment_count", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "post_featured_image", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "postBlogId", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "DeletePostInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "CreateCommentInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "content", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "commentPostId", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentConditionInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "content", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCommentConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "UpdateCommentInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "content", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "commentPostId", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "DeleteCommentInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "CreateCategoryInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "name", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "categoryPostId", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryConditionInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "name", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelCategoryConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "UpdateCategoryInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "name", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "categoryPostId", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "DeleteCategoryInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "CreateVodAssetInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "title", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "description", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "vodAssetVideoId", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetConditionInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "title", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "description", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvodAssetConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "UpdateVodAssetInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "title", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "description", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "vodAssetVideoId", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "DeleteVodAssetInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "CreateVideoObjectInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "token", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectConditionInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "token", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelvideoObjectConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "UpdateVideoObjectInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "token", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "DeleteVideoObjectInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Subscription", + "description" : null, + "fields" : [ { + "name" : "onCreateVodAsset", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "vodAsset", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onUpdateVodAsset", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "vodAsset", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onDeleteVodAsset", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "vodAsset", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onCreateComment", + "description" : null, + "args" : [ { + "name" : "owner", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Comment", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onUpdateComment", + "description" : null, + "args" : [ { + "name" : "owner", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Comment", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onDeleteComment", + "description" : null, + "args" : [ { + "name" : "owner", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Comment", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onCreateCategory", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Category", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onUpdateCategory", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Category", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onDeleteCategory", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Category", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onCreateVideoObject", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onUpdateVideoObject", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onDeleteVideoObject", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "videoObject", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "SearchableFloatFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gte", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lte", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "range", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "Float", + "description" : "Built-in Float", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelFloatInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__Schema", + "description" : "A GraphQL Introspection defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, the entry points for query, mutation, and subscription operations.", + "fields" : [ { + "name" : "types", + "description" : "A list of all types supported by this server.", + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "queryType", + "description" : "The type that query operations will be rooted at.", + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "mutationType", + "description" : "If this server supports mutation, the type that mutation operations will be rooted at.", + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "directives", + "description" : "'A list of all directives supported by this server.", + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Directive", + "ofType" : null + } + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "subscriptionType", + "description" : "'If this server support subscription, the type that subscription operations will be rooted at.", + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__Type", + "description" : null, + "fields" : [ { + "name" : "kind", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "ENUM", + "name" : "__TypeKind", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "fields", + "description" : null, + "args" : [ { + "name" : "includeDeprecated", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : "false" + } ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Field", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "interfaces", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "possibleTypes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "enumValues", + "description" : null, + "args" : [ { + "name" : "includeDeprecated", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : "false" + } ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__EnumValue", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "inputFields", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__InputValue", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ofType", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "__TypeKind", + "description" : "An enum describing what kind of type a given __Type is", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "SCALAR", + "description" : "Indicates this type is a scalar.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "OBJECT", + "description" : "Indicates this type is an object. `fields` and `interfaces` are valid fields.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INTERFACE", + "description" : "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "UNION", + "description" : "Indicates this type is a union. `possibleTypes` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ENUM", + "description" : "Indicates this type is an enum. `enumValues` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INPUT_OBJECT", + "description" : "Indicates this type is an input object. `inputFields` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "LIST", + "description" : "Indicates this type is a list. `ofType` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "NON_NULL", + "description" : "Indicates this type is a non-null. `ofType` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__Field", + "description" : null, + "fields" : [ { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "args", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__InputValue", + "ofType" : null + } + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "type", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "isDeprecated", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deprecationReason", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__InputValue", + "description" : null, + "fields" : [ { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "type", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "defaultValue", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__EnumValue", + "description" : null, + "fields" : [ { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "isDeprecated", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deprecationReason", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__Directive", + "description" : null, + "fields" : [ { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "locations", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "ENUM", + "name" : "__DirectiveLocation", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "args", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__InputValue", + "ofType" : null + } + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onOperation", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : true, + "deprecationReason" : "Use `locations`." + }, { + "name" : "onFragment", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : true, + "deprecationReason" : "Use `locations`." + }, { + "name" : "onField", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : true, + "deprecationReason" : "Use `locations`." + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "__DirectiveLocation", + "description" : "An enum describing valid locations where a directive can be placed", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "QUERY", + "description" : "Indicates the directive is valid on queries.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "MUTATION", + "description" : "Indicates the directive is valid on mutations.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "FIELD", + "description" : "Indicates the directive is valid on fields.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "FRAGMENT_DEFINITION", + "description" : "Indicates the directive is valid on fragment definitions.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "FRAGMENT_SPREAD", + "description" : "Indicates the directive is valid on fragment spreads.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INLINE_FRAGMENT", + "description" : "Indicates the directive is valid on inline fragments.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "SCHEMA", + "description" : "Indicates the directive is valid on a schema SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "SCALAR", + "description" : "Indicates the directive is valid on a scalar SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "OBJECT", + "description" : "Indicates the directive is valid on an object SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "FIELD_DEFINITION", + "description" : "Indicates the directive is valid on a field SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ARGUMENT_DEFINITION", + "description" : "Indicates the directive is valid on a field argument SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INTERFACE", + "description" : "Indicates the directive is valid on an interface SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "UNION", + "description" : "Indicates the directive is valid on an union SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ENUM", + "description" : "Indicates the directive is valid on an enum SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ENUM_VALUE", + "description" : "Indicates the directive is valid on an enum value SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INPUT_OBJECT", + "description" : "Indicates the directive is valid on an input object SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INPUT_FIELD_DEFINITION", + "description" : "Indicates the directive is valid on an input object field SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + } ], + "directives" : [ { + "name" : "include", + "description" : "Directs the executor to include this field or fragment only when the `if` argument is true", + "locations" : [ "FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT" ], + "args" : [ { + "name" : "if", + "description" : "Included when true.", + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : true, + "onField" : true + }, { + "name" : "skip", + "description" : "Directs the executor to skip this field or fragment when the `if`'argument is true.", + "locations" : [ "FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT" ], + "args" : [ { + "name" : "if", + "description" : "Skipped when true.", + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : true, + "onField" : true + }, { + "name" : "defer", + "description" : "This directive allows results to be deferred during execution", + "locations" : [ "FIELD" ], + "args" : [ ], + "onOperation" : false, + "onFragment" : false, + "onField" : true + }, { + "name" : "aws_subscribe", + "description" : "Tells the service which mutation triggers this subscription.", + "locations" : [ "FIELD_DEFINITION" ], + "args" : [ { + "name" : "mutations", + "description" : "List of mutations which will trigger this subscription when they are called.", + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_publish", + "description" : "Tells the service which subscriptions will be published to when this mutation is called. This directive is deprecated use @aws_susbscribe directive instead.", + "locations" : [ "FIELD_DEFINITION" ], + "args" : [ { + "name" : "subscriptions", + "description" : "List of subscriptions which will be published to when this mutation is called.", + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_iam", + "description" : "Tells the service this field/object has access authorized by sigv4 signing.", + "locations" : [ "OBJECT", "FIELD_DEFINITION" ], + "args" : [ ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_oidc", + "description" : "Tells the service this field/object has access authorized by an OIDC token.", + "locations" : [ "OBJECT", "FIELD_DEFINITION" ], + "args" : [ ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_api_key", + "description" : "Tells the service this field/object has access authorized by an API key.", + "locations" : [ "OBJECT", "FIELD_DEFINITION" ], + "args" : [ ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_auth", + "description" : "Directs the schema to enforce authorization on a field", + "locations" : [ "FIELD_DEFINITION" ], + "args" : [ { + "name" : "cognito_groups", + "description" : "List of cognito user pool groups which have access on this field", + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "deprecated", + "description" : null, + "locations" : [ "FIELD_DEFINITION", "ENUM_VALUE" ], + "args" : [ { + "name" : "reason", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : "\"No longer supported\"" + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_cognito_user_pools", + "description" : "Tells the service this field/object has access authorized by a Cognito User Pools token.", + "locations" : [ "OBJECT", "FIELD_DEFINITION" ], + "args" : [ { + "name" : "cognito_groups", + "description" : "List of cognito user pool groups which have access on this field", + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + } ] + } + } +} \ No newline at end of file diff --git a/frontend/admin/src/layout/AppMenu.tsx b/frontend/admin/src/layout/AppMenu.tsx new file mode 100644 index 000000000..1f39fb7e3 --- /dev/null +++ b/frontend/admin/src/layout/AppMenu.tsx @@ -0,0 +1,112 @@ +import ActiveLink from '@/components/ActiveLink'; +import TitleLogo from '@/components/global/logos/TitleLogo'; + +export const AppMenu = (props) => { + const { setOverlayMenuActive, overlayMenuActive } = props; + + return ( +
+
+
+
+ + + + + +
+ + +
+ + +
+ +
+ ); +}; diff --git a/frontend/admin/src/layout/AppTopbar.tsx b/frontend/admin/src/layout/AppTopbar.tsx new file mode 100644 index 000000000..8f5b2c9f4 --- /dev/null +++ b/frontend/admin/src/layout/AppTopbar.tsx @@ -0,0 +1,280 @@ +import { useState } from 'react'; +import Link from 'next/link'; +import ActiveLink from '@/components/ActiveLink'; +import { Transition } from '@headlessui/react'; +import OutsideClick from '@/components/OutsideClick'; +import TitleLogo from '@/components/global/logos/TitleLogo'; + +export const AppTopbar = (props) => { + const { setOverlayMenuActive, overlayMenuActive } = props; + + const [userMenu, setUserMenu] = useState(false); + + return ( + + ); +}; diff --git a/frontend/admin/src/pages/[...permalink].tsx b/frontend/admin/src/pages/[...permalink].tsx new file mode 100644 index 000000000..4e9d756fe --- /dev/null +++ b/frontend/admin/src/pages/[...permalink].tsx @@ -0,0 +1,130 @@ +import Head from 'next/head'; +import DefaultErrorPage from 'next/error'; +import { useRouter } from 'next/router'; + +import admin from '@/utils/firebaseAdmin'; + +import renderToString from 'next-mdx-remote/render-to-string'; +import hydrate from 'next-mdx-remote/hydrate'; +import parse from 'remark-parse'; +import mdx from 'remark-mdx'; + +import RecentPostsList from '@/components/RecentPostsList'; + +export default function Post({ post, markdown, recentPosts }) { + const router = useRouter(); + if (router.isFallback) { + return

Loading ...

; + } + + if (!post) { + return ( + <> + + + + + + ); + } + + const content = hydrate(markdown); + return ( +
+
+

{post.post_title}

+
+ {content} +
+
+
+
+

+ Recent Posts +

+ +

+ Recent Tutorials +

+ +

+ Recent Podcasts +

+ +
+
+
+ ); +} + +export async function getStaticPaths() { + const POSTS = []; + ['post', 'tutorials', 'podcasts'].forEach(async (postType) => { + const posts = await admin + .firestore() + .collection(postType === 'post' ? 'posts' : postType) + .orderBy('post_publish_datetime', 'desc') + .get(); + for (const doc of posts.docs) { + POSTS.push({ + params: { + permalink: doc.data().post_permalink.substring(1).split('/'), + }, + }); + } + }); + return { + paths: POSTS, + fallback: true, + }; +} + +export async function getStaticProps({ params }) { + const { permalink } = params; + + const posts = await admin + .firestore() + .collection(permalink.length > 1 ? `${permalink[0]}` : 'posts') + .where('post_permalink', '==', `/${permalink.join('/')}`) + .get(); + + let postData; + for (const doc of posts.docs) { + postData = doc.data(); + } + const post = posts.docs.length > 0 ? postData : null; + const markdown = post + ? await renderToString(postData.post_content, { + mdxOptions: { + remarkPlugins: [parse, mdx], + }, + }) + : null; + + const recentPosts = { post: [], tutorials: [], podcasts: [] }; + await Promise.all( + Object.keys(recentPosts).map(async (postType) => { + const posts = await admin + .firestore() + .collection(postType === 'post' ? 'posts' : postType) + .orderBy('post_publish_datetime', 'desc') + .limit(3) + .get(); + for (const doc of posts.docs) { + recentPosts[postType].push(doc.data()); + } + }) + ); + + return { + props: { + post, + markdown, + recentPosts, + }, + // Next.js will attempt to re-generate the page: + // - When a request comes in + // - At most once every second + revalidate: 1, // In seconds + }; +} diff --git a/frontend/admin/src/pages/_app.tsx b/frontend/admin/src/pages/_app.tsx index 8ec0291b6..c79e4d0a5 100644 --- a/frontend/admin/src/pages/_app.tsx +++ b/frontend/admin/src/pages/_app.tsx @@ -1,75 +1,78 @@ -import '@/styles/globals.css'; -import Head from 'next/head'; - -import { createMuiTheme, ThemeProvider } from '@material-ui/core/styles'; -import { CacheProvider } from '@emotion/react'; -import CssBaseline from '@material-ui/core/CssBaseline'; -import createCache from '@emotion/cache'; +import '../styles/globals.css'; import { useState } from 'react'; +import { Transition } from '@headlessui/react'; +import router from 'next/router'; + +import { AppTopbar } from '../layout/AppTopbar'; +import { AppMenu } from '../layout/AppMenu'; + +import OutsideClick from '@/components/OutsideClick'; -export const cache = createCache({ key: 'css', prepend: true }); +function MyApp({ Component, pageProps }) { + const [overlayMenuActive, setOverlayMenuActive] = useState(false); -function MyApp({ Component, pageProps }: { Component: any; pageProps: any }) { - const [darkMode, setDarkMode] = useState(true); - const mode = darkMode ? 'dark' : 'light'; - const background = darkMode - ? { paper: '#424242', default: '#303030' } - : { paper: '#fff', default: '#EFE4F4' }; + let menuClick = false; - const darkTheme = createMuiTheme({ - components: { - MuiCssBaseline: { - styleOverrides: { - '@global': { - a: { - color: darkMode ? 'white' : '#5e1185', - }, - '.editor-toolbar': { - backgroundColor: background.paper, - }, - '.CodeMirror': { - backgroundColor: background.paper, - color: darkMode ? 'white' : 'black', - }, - '.editor-preview-side': { - backgroundColor: background.paper, - }, - }, - }, - }, - }, - palette: { - mode, - primary: { - main: '#5e1185', - }, - secondary: { - main: '#D11663', - }, - background, - }, - }); - const handleThemeChange = () => { - setDarkMode(!darkMode); + const onSidebarClick = () => { + menuClick = true; }; + const onMenuItemClick = (event) => { + if (!event.item.items) { + setOverlayMenuActive(false); + } + }; + const onShowMenuButton = (event) => { + console.log(event); + }; + + router.events.on('routeChangeComplete', () => setOverlayMenuActive(false)); return ( <> - - - CodingCatDev - - - - {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */} - - - - +
+
+
+ +
+
+ +
+ +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
); } diff --git a/frontend/admin/src/pages/_document.tsx b/frontend/admin/src/pages/_document.tsx index c5d75bb80..4cb9d6e6b 100644 --- a/frontend/admin/src/pages/_document.tsx +++ b/frontend/admin/src/pages/_document.tsx @@ -1,31 +1,15 @@ -import Document, { - Html, - Head, - Main, - NextScript, - DocumentContext, -} from 'next/document'; -import React from 'react'; -import { ServerStyleSheets } from '@material-ui/core/styles'; -import createEmotionServer from '@emotion/server/create-instance'; -import { cache } from './_app'; -const { extractCritical } = createEmotionServer(cache); +import Document, { Html, Head, Main, NextScript } from 'next/document'; class MyDocument extends Document { - static async getInitialProps(ctx: DocumentContext) { + static async getInitialProps(ctx) { const initialProps = await Document.getInitialProps(ctx); return { ...initialProps }; } render() { return ( - + - - @@ -151,55 +135,3 @@ class MyDocument extends Document { } export default MyDocument; - -// `getInitialProps` belongs to `_document` (instead of `_app`), -// it's compatible with static-site generation (SSG). -MyDocument.getInitialProps = async (ctx) => { - // Resolution order - // - // On the server: - // 1. app.getInitialProps - // 2. page.getInitialProps - // 3. document.getInitialProps - // 4. app.render - // 5. page.render - // 6. document.render - // - // On the server with error: - // 1. document.getInitialProps - // 2. app.render - // 3. page.render - // 4. document.render - // - // On the client - // 1. app.getInitialProps - // 2. page.getInitialProps - // 3. app.render - // 4. page.render - - // Render app and page and get the context of the page with collected side effects. - const sheets = new ServerStyleSheets(); - const originalRenderPage = ctx.renderPage; - - ctx.renderPage = () => - originalRenderPage({ - enhanceApp: (App) => (props) => sheets.collect(), - }); - - const initialProps = await Document.getInitialProps(ctx); - const styles = extractCritical(initialProps.html); - return { - ...initialProps, - // Styles fragment is rendered after the app and page rendering finish. - styles: [ - ...React.Children.toArray(initialProps.styles), - sheets.getStyleElement(), -