|
@@ -1,7 +1,3 @@
|
|
|
-import { store } from "."
|
|
|
-import { useGetState } from 'react-redux';
|
|
|
-import { useHistory } from "react-router-dom";
|
|
|
-
|
|
|
const url = 'http://hipstagram.node.ed.asmer.org.ua/graphql'
|
|
|
|
|
|
// функция getGql
|
|
@@ -58,10 +54,15 @@ export const actionPromise = (type, nameOfPromise, promise) =>
|
|
|
|
|
|
|
|
|
|
|
|
-// =============================================================
|
|
|
-// Запросы на бек
|
|
|
+// акшон для логинизации в authReduser
|
|
|
+export const actionAuthLogin = token => ({ type: 'AUTH_LOGIN', token })
|
|
|
+
|
|
|
+// акшон для раззлогинивания в authReduser
|
|
|
+export const actionAuthLogout = () => ({ type: 'AUTH_LOGOUT' })
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-// Запрос на регистрацию пользователя
|
|
|
+// Запрос на регистрацию юзера
|
|
|
export const actionRegistration = (login, password) => actionPromise('PROMISE', 'Registration', gql(`mutation Registration($login:String!, $password:String!) {
|
|
|
createUser(login:$login, password:$password) {
|
|
|
_id login
|
|
@@ -69,13 +70,11 @@ export const actionRegistration = (login, password) => actionPromise('PROMISE',
|
|
|
}`, {
|
|
|
login,
|
|
|
password
|
|
|
-})
|
|
|
-
|
|
|
-)
|
|
|
+}))
|
|
|
|
|
|
|
|
|
|
|
|
-// Запрос на логинизацию пользователя
|
|
|
+// Запрос на логинизацию юзера
|
|
|
export const actionLogin = (login, password) => actionPromise('PROMISE', 'Login', gql(`query Login($login: String!, $password: String!) {
|
|
|
login(login: $login, password: $password)
|
|
|
}`, {
|
|
@@ -85,16 +84,7 @@ login(login: $login, password: $password)
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
-// акшон для логинизации в authReduser
|
|
|
-const actionAuthLogin = token => ({ type: 'AUTH_LOGIN', token })
|
|
|
-// акшон для раззлогинивания
|
|
|
-export const actionAuthLogout = () => ({ type: 'AUTH_LOGOUT' })
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-// запрос на изменение пароля юзера
|
|
|
+// Запрос на изменение пароля юзера
|
|
|
export const actionPassChange = (loginChange, passwordChange, passwordNew) => actionPromise('PROMISE', 'PassChange', gql(`mutation PasswordChange($loginChange: String!, $passwordChange: String!, $passwordNew: String!) {
|
|
|
changePassword(
|
|
|
login: $loginChange, password: $passwordChange, newPassword: $passwordNew
|
|
@@ -110,8 +100,7 @@ export const actionPassChange = (loginChange, passwordChange, passwordNew) => ac
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
-// запрос на поиск конкретного поста
|
|
|
+// Запрос на поиск конкретного поста
|
|
|
export const actionFindPostOne = _id => actionPromise('PROMISE', 'PostFindOne', gql(`query OnePostFind ($postOne: String){
|
|
|
PostFindOne (query: $postOne) {
|
|
|
_id createdAt title text likesCount
|
|
@@ -142,6 +131,8 @@ export const actionFindPostOne = _id => actionPromise('PROMISE', 'PostFindOne',
|
|
|
postOne: JSON.stringify([{ _id }])
|
|
|
}))
|
|
|
|
|
|
+
|
|
|
+
|
|
|
// запрос на поиск конкретного юзера(folowwing - это те, на кого я подписан. followers - те, кто на меня подписан)
|
|
|
// export const actionFindUserOne = (_id, promiseName = 'UserFindOne') => actionPromise('PROMISE', promiseName, gql(`query OneUserFind ($userOne: String) {
|
|
|
// UserFindOne(query: $userOne) {
|
|
@@ -159,9 +150,6 @@ export const actionFindPostOne = _id => actionPromise('PROMISE', 'PostFindOne',
|
|
|
// }`, {
|
|
|
// userOne: JSON.stringify([{ _id }])
|
|
|
// }))
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
export const actionFindUserOne = (_id, promiseName = 'UserFindOne') => actionPromise('PROMISE', promiseName, gql(`query OneUserFind ($userOne: String) {
|
|
|
UserFindOne(query: $userOne) {
|
|
|
_id createdAt login nick
|
|
@@ -181,7 +169,7 @@ export const actionFindUserOne = (_id, promiseName = 'UserFindOne') => actionPro
|
|
|
|
|
|
|
|
|
|
|
|
-// запрос на поиск всех постов на беке (нигде не должен использоваться)
|
|
|
+// Запрос на поиск всех постов на беке (нигде не должен использоваться)
|
|
|
export const actionfindPosts = () => actionPromise('PROMISE', 'PostsFind', gql(`query AllPostsFind ($allPosts: String){
|
|
|
PostFind(query: $allPosts){
|
|
|
_id createdAt title text likesCount
|
|
@@ -241,11 +229,7 @@ export const actionFeedFindOne = (arr, sortOne, limitOne, promiseName = 'Feed',
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-// запрос ленты с пропуском определенного количества постов.комментов
|
|
|
+// Запрос ленты с пропуском определенного количества постов/комментов
|
|
|
// export const actionFeedFindOneSkip = (arr, sortOne, skipOne, limitOne, promiseName = 'Feed') => actionPromise('FEED', promiseName, gql(`query FeedFindOne ($feedOne: String){
|
|
|
// PostFind(query: $feedOne){
|
|
|
// _id createdAt title text likesCount owner{
|
|
@@ -287,6 +271,29 @@ export const actionFeedFindOneSkip = (arr, sortOne, skipOne, limitOne, promiseNa
|
|
|
|
|
|
|
|
|
|
|
|
+// Запрос на подсчет количества постов юзера
|
|
|
+export const actionPostsCount = (id, promiseName) => actionPromise('PROMISE', promiseName, gql(`query PostsCount ($postsCount: String){
|
|
|
+ PostCount(query: $postsCount)
|
|
|
+}`, {
|
|
|
+ postsCount: JSON.stringify([{ ___owner: id }])
|
|
|
+}))
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// Запрос на создание поста
|
|
|
+export const actionCreatePost = params => actionPromise('PROMISE', 'CreatePost', gql(
|
|
|
+ `mutation CreatePost($createNewPost: PostInput){
|
|
|
+ PostUpsert(post: $createNewPost){
|
|
|
+ _id
|
|
|
+ }
|
|
|
+}`, {
|
|
|
+ createNewPost: params
|
|
|
+}))
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -296,14 +303,7 @@ export const actionFeedFindOneSkip = (arr, sortOne, skipOne, limitOne, promiseNa
|
|
|
|
|
|
|
|
|
|
|
|
-// запрос на подсчет количества постов юзера
|
|
|
-export const actionPostsCount = (id, promiseName) => actionPromise('PROMISE', promiseName, gql(`query PostsCount ($postsCount: String){
|
|
|
- PostCount(query: $postsCount)
|
|
|
-}`, {
|
|
|
- postsCount: JSON.stringify([{ ___owner: id }])
|
|
|
-})
|
|
|
|
|
|
-)
|
|
|
|
|
|
|
|
|
|
|
@@ -312,20 +312,20 @@ export const actionPostsCount = (id, promiseName) => actionPromise('PROMISE', pr
|
|
|
// Thunk-и
|
|
|
|
|
|
// Thunk логин и последующую логинизацию в authReduser
|
|
|
-export const actionFullLogin = (login, password) =>
|
|
|
- async dispatch => {
|
|
|
+// export const actionFullLogin = (login, password) =>
|
|
|
+// async dispatch => {
|
|
|
|
|
|
- const token = await dispatch(actionLogin(login, password))
|
|
|
+// const token = await dispatch(actionLogin(login, password))
|
|
|
|
|
|
- if (token !== null) {
|
|
|
- if (typeof (token) === 'string') {
|
|
|
- dispatch(actionAuthLogin(token))
|
|
|
- localStorage.authToken = token
|
|
|
- }
|
|
|
- }
|
|
|
+// if (token !== null) {
|
|
|
+// if (typeof (token) === 'string') {
|
|
|
+// dispatch(actionAuthLogin(token))
|
|
|
+// localStorage.authToken = token
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
- return token
|
|
|
- }
|
|
|
+// return token
|
|
|
+// }
|
|
|
|
|
|
|
|
|
|
|
@@ -333,46 +333,46 @@ export const actionFullLogin = (login, password) =>
|
|
|
|
|
|
|
|
|
// Thunk на регистрацию и последующую логинизацию
|
|
|
-export const actionFullRegistration = (login, password) =>
|
|
|
- async dispatch => {
|
|
|
+// export const actionFullRegistration = (login, password) =>
|
|
|
+// async dispatch => {
|
|
|
|
|
|
- const token = await dispatch(actionRegistration(login, password))
|
|
|
+// const token = await dispatch(actionRegistration(login, password))
|
|
|
|
|
|
- if (token !== null) {
|
|
|
- dispatch(actionFullLogin(login, password))
|
|
|
- }
|
|
|
+// if (token !== null) {
|
|
|
+// dispatch(actionFullLogin(login, password))
|
|
|
+// }
|
|
|
|
|
|
- return token
|
|
|
- }
|
|
|
+// return token
|
|
|
+// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Thunk разлогина и последующей полной очистки localStorage
|
|
|
-export const actionFullLogout = () =>
|
|
|
- async dispatch => {
|
|
|
- await dispatch(actionAuthLogout())
|
|
|
- return {}
|
|
|
- }
|
|
|
+// export const actionFullLogout = () =>
|
|
|
+// async dispatch => {
|
|
|
+// await dispatch(actionAuthLogout())
|
|
|
+// return {}
|
|
|
+// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Thunk для страницы юзера (диспатчим запрос на юзера и на ленту его постов)
|
|
|
-export const actionFullUserFindOne = _id =>
|
|
|
- async dispatch => {
|
|
|
+// export const actionFullUserFindOne = _id =>
|
|
|
+// async dispatch => {
|
|
|
|
|
|
- // запрашиваем информацию о пользователе
|
|
|
- await dispatch(actionFindUserOne(_id, 'UserFindOne'))
|
|
|
+// // запрашиваем информацию о пользователе
|
|
|
+// await dispatch(actionFindUserOne(_id, 'UserFindOne'))
|
|
|
|
|
|
- // парсим счетчик, сколько постов у юзера
|
|
|
- dispatch(actionPostsCount(_id, 'UserPostsCount'))
|
|
|
+// // парсим счетчик, сколько постов у юзера
|
|
|
+// dispatch(actionPostsCount(_id, 'UserPostsCount'))
|
|
|
|
|
|
- // запрашиваем список постов для юзера
|
|
|
- dispatch(actionFeedFindOne([_id], -1, 100, 'UserFeed'))
|
|
|
- }
|
|
|
+// // запрашиваем список постов для юзера
|
|
|
+// dispatch(actionFeedFindOne([_id], -1, 100, 'UserFeed'))
|
|
|
+// }
|
|
|
|
|
|
|
|
|
|
|
@@ -380,44 +380,44 @@ export const actionFullUserFindOne = _id =>
|
|
|
|
|
|
|
|
|
// запрос AboutMe для главной страницы (лента моих постов и мои данные)
|
|
|
-export const actionAboutMe = () =>
|
|
|
- async (dispatch, getState) => {
|
|
|
- const myId = getState()?.auth?.payload?.sub?.id
|
|
|
+// export const actionAboutMe = () =>
|
|
|
+// async (dispatch, getState) => {
|
|
|
+// const myId = getState()?.auth?.payload?.sub?.id
|
|
|
|
|
|
- // диспатчим запрос AboutMe (о себе)
|
|
|
- const userData = await dispatch(actionFindUserOne(myId, 'AboutMe'))
|
|
|
+// // диспатчим запрос AboutMe (о себе)
|
|
|
+// const userData = await dispatch(actionFindUserOne(myId, 'AboutMe'))
|
|
|
|
|
|
- // парсим счетчик, сколько постов у меня
|
|
|
- dispatch(actionPostsCount(myId, 'MyPostsCount'))
|
|
|
+// // парсим счетчик, сколько постов у меня
|
|
|
+// dispatch(actionPostsCount(myId, 'MyPostsCount'))
|
|
|
|
|
|
- let followingList = []
|
|
|
- // проверяем, есть ли вообще подписчики и если да, парсим их
|
|
|
- if (userData?.following) {
|
|
|
- // получаем id всех подписок
|
|
|
- followingList = (userData.following).map(user => user?._id)
|
|
|
- }
|
|
|
+// let followingList = []
|
|
|
+// // проверяем, есть ли вообще подписчики и если да, парсим их
|
|
|
+// if (userData?.following) {
|
|
|
+// // получаем id всех подписок
|
|
|
+// followingList = (userData.following).map(user => user?._id)
|
|
|
+// }
|
|
|
|
|
|
- // запрашиваем формирование ленты моих постов (первый параметр - список id, второй - это сортировка постов от новых)
|
|
|
- dispatch(actionFeedFindOne(followingList, -1, 10, 'MyFeed'))
|
|
|
- }
|
|
|
+// // запрашиваем формирование ленты моих постов (первый параметр - список id, второй - это сортировка постов от новых)
|
|
|
+// dispatch(actionFeedFindOne(followingList, -1, 10, 'MyFeed'))
|
|
|
+// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ================= на удаление (начало)=====================
|
|
|
|
|
|
-export const actionDownloadFeed = (skip) =>
|
|
|
- async (dispatch, getState) => {
|
|
|
+// export const actionDownloadFeed = (skip) =>
|
|
|
+// async (dispatch, getState) => {
|
|
|
|
|
|
- console.log('скипаем: ', skip)
|
|
|
- const followingList = (getState()?.promise?.AboutMe?.payload?.following).map(user => user._id)
|
|
|
+// console.log('скипаем: ', skip)
|
|
|
+// const followingList = (getState()?.promise?.AboutMe?.payload?.following).map(user => user._id)
|
|
|
|
|
|
- if (followingList) {
|
|
|
- const result = await dispatch(actionFeedFindOne(followingList, -1, 10, 'AddFeed', skip))
|
|
|
+// if (followingList) {
|
|
|
+// const result = await dispatch(actionFeedFindOne(followingList, -1, 10, 'AddFeed', skip))
|
|
|
|
|
|
- return result
|
|
|
- }
|
|
|
- }
|
|
|
+// return result
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
|
|
|
// ================= на удаление(конец) =====================
|
|
@@ -425,28 +425,28 @@ export const actionDownloadFeed = (skip) =>
|
|
|
|
|
|
|
|
|
// запрос на загрузку картинок на бек
|
|
|
-function fileUpload(file) {
|
|
|
- const formData = new FormData()
|
|
|
- formData.append('photo', file)
|
|
|
+// function fileUpload(file) {
|
|
|
+// const formData = new FormData()
|
|
|
+// formData.append('photo', file)
|
|
|
|
|
|
- return (
|
|
|
- fetch('http://hipstagram.node.ed.asmer.org.ua/upload', {
|
|
|
- method: 'POST',
|
|
|
- headers: {
|
|
|
- Authorization: 'Bearer ' + localStorage.authToken
|
|
|
- },
|
|
|
- body: formData
|
|
|
- }).then(res => res.json())
|
|
|
- )
|
|
|
-}
|
|
|
+// return (
|
|
|
+// fetch('http://hipstagram.node.ed.asmer.org.ua/upload', {
|
|
|
+// method: 'POST',
|
|
|
+// headers: {
|
|
|
+// Authorization: 'Bearer ' + localStorage.authToken
|
|
|
+// },
|
|
|
+// body: formData
|
|
|
+// }).then(res => res.json())
|
|
|
+// )
|
|
|
+// }
|
|
|
|
|
|
-function filesUpload(files) {
|
|
|
- return Promise.all(files.map(fileUpload))
|
|
|
-}
|
|
|
+// function filesUpload(files) {
|
|
|
+// return Promise.all(files.map(fileUpload))
|
|
|
+// }
|
|
|
|
|
|
-export const actionFilesUpload = (files) => actionPromise('PROMISE', 'FilesUpload',
|
|
|
- filesUpload(files)
|
|
|
-)
|
|
|
+// export const actionFilesUpload = (files) => actionPromise('PROMISE', 'FilesUpload',
|
|
|
+// filesUpload(files)
|
|
|
+// )
|
|
|
|
|
|
|
|
|
|
|
@@ -454,15 +454,6 @@ export const actionFilesUpload = (files) => actionPromise('PROMISE', 'FilesUploa
|
|
|
|
|
|
|
|
|
|
|
|
-// запрос на создание поста
|
|
|
-export const actionCreatePost = (params) => actionPromise('PROMISE', 'CreatePost', gql(
|
|
|
- `mutation CreatePost($createNewPost: PostInput){
|
|
|
- PostUpsert(post: $createNewPost){
|
|
|
- _id
|
|
|
- }
|
|
|
-}`, {
|
|
|
- createNewPost: params
|
|
|
-}))
|
|
|
|
|
|
|
|
|
|
|
@@ -473,15 +464,15 @@ export const actionCreatePost = (params) => actionPromise('PROMISE', 'CreatePost
|
|
|
|
|
|
|
|
|
// санк для создания поста и последующего перехода на его страницу
|
|
|
-export const actionFullCreatePost = (params) =>
|
|
|
- async dispatch => {
|
|
|
- const newPost = await dispatch(actionCreatePost(params))
|
|
|
- // console.log('Тут нужный резульата: ', newPost)
|
|
|
+// export const actionFullCreatePost = (params) =>
|
|
|
+// async dispatch => {
|
|
|
+// const newPost = await dispatch(actionCreatePost(params))
|
|
|
+// // console.log('Тут нужный резульата: ', newPost)
|
|
|
|
|
|
- if (newPost) {
|
|
|
- dispatch(actionFindPostOne(newPost._id))
|
|
|
- }
|
|
|
- }
|
|
|
+// if (newPost) {
|
|
|
+// dispatch(actionFindPostOne(newPost._id))
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
|
|
|
|