From 72c67c44b2b2d353c05039234d9dbe22e968564f Mon Sep 17 00:00:00 2001 From: Ramazan AYYILDIZ Date: Sun, 2 Aug 2020 09:43:09 +0200 Subject: [PATCH] new apollo codegen folders , __generated__ --- go.mod | 12 +-- go.sum | 25 +++-- web/app/Makefile | 3 +- .../graph => __generated__}/globalTypes.ts | 0 web/app/package.json | 5 +- web/app/src/graph/queries.ts | 95 ------------------- web/app/src/pages/ContactPage.tsx | 12 ++- web/app/src/pages/HomePage.tsx | 24 ++++- web/app/src/pages/SearchPage.tsx | 21 +++- web/app/src/pages/TweetPage.tsx | 46 ++++++++- web/app/src/pages/UserPage.tsx | 22 ++++- .../{graph => pages/__generated__}/Capture.ts | 0 .../{graph => pages/__generated__}/Contact.ts | 2 +- .../{graph => pages/__generated__}/Search.ts | 2 +- .../__generated__}/SearchByUser.ts | 0 .../{graph => pages/__generated__}/Tweet.ts | 0 .../__generated__}/TweetImage.ts | 0 web/app/yarn.lock | 63 ++++++++---- 18 files changed, 181 insertions(+), 151 deletions(-) rename web/app/{src/graph => __generated__}/globalTypes.ts (100%) delete mode 100644 web/app/src/graph/queries.ts rename web/app/src/{graph => pages/__generated__}/Capture.ts (100%) rename web/app/src/{graph => pages/__generated__}/Contact.ts (86%) rename web/app/src/{graph => pages/__generated__}/Search.ts (91%) rename web/app/src/{graph => pages/__generated__}/SearchByUser.ts (100%) rename web/app/src/{graph => pages/__generated__}/Tweet.ts (100%) rename web/app/src/{graph => pages/__generated__}/TweetImage.ts (100%) diff --git a/go.mod b/go.mod index 93d17c3..3e53321 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/agnivade/levenshtein v1.1.0 // indirect github.com/algolia/algoliasearch-client-go/v3 v3.9.0 github.com/azr/backoff v0.0.0-20160115115103-53511d3c7330 // indirect - github.com/chromedp/cdproto v0.0.0-20200608134039-8a80cdaf865c + github.com/chromedp/cdproto v0.0.0-20200709115526-d1f6fc58448b github.com/chromedp/chromedp v0.5.3 github.com/dustin/go-jsonpointer v0.0.0-20160814072949-ba0abeacc3dc // indirect github.com/dustin/gojson v0.0.0-20160307161227-2e71ec9dd5ad // indirect @@ -18,12 +18,13 @@ require ( github.com/getsentry/sentry-go v0.7.0 github.com/gobwas/pool v0.2.1 // indirect github.com/gobwas/ws v1.0.3 // indirect - github.com/golang/mock v1.4.3 + github.com/golang/mock v1.4.4 github.com/google/uuid v1.1.1 github.com/gorilla/websocket v1.4.2 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/joho/godotenv v1.3.0 - github.com/mitchellh/mapstructure v1.3.2 // indirect + github.com/mailru/easyjson v0.7.2 // indirect + github.com/mitchellh/mapstructure v1.3.3 // indirect github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/rs/cors v1.7.0 github.com/stretchr/testify v1.6.1 @@ -33,10 +34,9 @@ require ( gocloud.dev v0.20.0 gocloud.dev/docstore/mongodocstore v0.20.0 gocloud.dev/pubsub/natspubsub v0.20.0 - golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect - golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect + golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 // indirect golang.org/x/text v0.3.3 // indirect - golang.org/x/tools v0.0.0-20200702044944-0cc1aa72b347 // indirect + golang.org/x/tools v0.0.0-20200731060945-b5fad4ed8dd6 // indirect google.golang.org/genproto v0.0.0-20200702021140-07506425bd67 // indirect google.golang.org/grpc v1.30.0 // indirect gopkg.in/yaml.v2 v2.3.0 // indirect diff --git a/go.sum b/go.sum index 23f95ff..e3327de 100644 --- a/go.sum +++ b/go.sum @@ -120,8 +120,8 @@ github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/chromedp/cdproto v0.0.0-20200116234248-4da64dd111ac h1:T7V5BXqnYd55Hj/g5uhDYumg9Fp3rMTS6bykYtTIFX4= github.com/chromedp/cdproto v0.0.0-20200116234248-4da64dd111ac/go.mod h1:PfAWWKJqjlGFYJEidUM6aVIWPr0EpobeyVWEEmplX7g= -github.com/chromedp/cdproto v0.0.0-20200608134039-8a80cdaf865c h1:qM1xzKK8kc93zKPkxK4iqtjksqDDrU6g9wGnr30jyLo= -github.com/chromedp/cdproto v0.0.0-20200608134039-8a80cdaf865c/go.mod h1:E6LPWRdIJc11h/di5p0rwvRmUYbhGpBEH7ZbPfzDIOE= +github.com/chromedp/cdproto v0.0.0-20200709115526-d1f6fc58448b h1:LF+GRwyzxrO3MUzPvejv+yBup0lNG+/QdIRrkxOPseA= +github.com/chromedp/cdproto v0.0.0-20200709115526-d1f6fc58448b/go.mod h1:E6LPWRdIJc11h/di5p0rwvRmUYbhGpBEH7ZbPfzDIOE= github.com/chromedp/chromedp v0.5.3 h1:F9LafxmYpsQhWQBdCs+6Sret1zzeeFyHS5LkRF//Ffg= github.com/chromedp/chromedp v0.5.3/go.mod h1:YLdPtndaHQ4rCpSpBG+IPpy9JvX0VD+7aaLxYgYj28w= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= @@ -233,6 +233,8 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -316,6 +318,8 @@ github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2 github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o= @@ -358,6 +362,8 @@ github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8= github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/mailru/easyjson v0.7.2 h1:V9ecaZWDYm7v9uJ15RZD6DajMu5sE0hdep0aoDwT9g4= +github.com/mailru/easyjson v0.7.2/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/matryer/moq v0.0.0-20200106131100-75d0ddfc0007 h1:reVOUXwnhsYv/8UqjvhrMOu5CNT9UapHFLbQ2JcXsmg= @@ -381,8 +387,8 @@ github.com/mitchellh/mapstructure v0.0.0-20180203102830-a4e142e9c047 h1:zCoDWFD5 github.com/mitchellh/mapstructure v0.0.0-20180203102830-a4e142e9c047/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg= -github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= +github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= @@ -498,6 +504,7 @@ github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDf github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.mongodb.org/mongo-driver v1.3.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE= go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= @@ -620,6 +627,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a h1:WXEvlFVvvGxCJLG6REjsT03iWnKLEWinaScsxF2Vm2o= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208 h1:qwRHBd0NqMbJxfbotnDhm2ByMI1Shq4Y6oRJo21SGJA= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -659,8 +668,8 @@ golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980 h1:OjiUf46hAmXblsZdnoSXsEUSKU8r1UEzcL5RVZ4gO9Y= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1 h1:sIky/MyNRSHTrdxfsiUSS4WIAMvInbeXljJz+jDjeYE= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -729,8 +738,8 @@ golang.org/x/tools v0.0.0-20200606014950-c42cb6316fb6/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200608174601-1b747fd94509 h1:MI14dOfl3OG6Zd32w3ugsrvcUO810fDZdWakTq39dH4= golang.org/x/tools v0.0.0-20200608174601-1b747fd94509/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200702044944-0cc1aa72b347 h1:/e4fNMHdLn7SQSxTrRZTma2xjQW6ELdxcnpqMhpo9X4= -golang.org/x/tools v0.0.0-20200702044944-0cc1aa72b347/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200731060945-b5fad4ed8dd6 h1:qKpj8TpV+LEhel7H/fR788J+KvhWZ3o3V6N2fU/iuLU= +golang.org/x/tools v0.0.0-20200731060945-b5fad4ed8dd6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= diff --git a/web/app/Makefile b/web/app/Makefile index 6b931e4..3926907 100644 --- a/web/app/Makefile +++ b/web/app/Makefile @@ -1,2 +1,3 @@ generate: - apollo client:codegen --localSchemaFile=../../schema.graphql --tagName=gql --outputFlat --target=typescript src/graph + echo "please use `yarn codegen` command" + #apollo client:codegen --localSchemaFile=../../schema.graphql --tagName=gql --outputFlat --target=typescript src/graph diff --git a/web/app/src/graph/globalTypes.ts b/web/app/__generated__/globalTypes.ts similarity index 100% rename from web/app/src/graph/globalTypes.ts rename to web/app/__generated__/globalTypes.ts diff --git a/web/app/package.json b/web/app/package.json index 8798b97..db65d93 100644 --- a/web/app/package.json +++ b/web/app/package.json @@ -8,9 +8,9 @@ "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", "@testing-library/user-event": "^7.2.1", - "@types/jest": "^24.9.1", + "@types/jest": "^26.0.8", "@types/node": "^12.12.53", - "@types/react": "^16.9.43", + "@types/react": "^16.9.44", "@types/react-dom": "^16.9.8", "bootstrap": "^5.0.0-alpha1", "bootstrap-icons": "^1.0.0-alpha5", @@ -31,6 +31,7 @@ "build:prod": "GENERATE_SOURCEMAP=false react-scripts build", "test": "react-scripts test --watchAll=false", "eject": "react-scripts eject", + "codegen": "apollo client:codegen --localSchemaFile=../../schema.graphql --target=typescript", "packages:upgrade": "yarn upgrade && syncyarnlock -s -k" }, "eslintConfig": { diff --git a/web/app/src/graph/queries.ts b/web/app/src/graph/queries.ts deleted file mode 100644 index 1a242a4..0000000 --- a/web/app/src/graph/queries.ts +++ /dev/null @@ -1,95 +0,0 @@ -import {gql} from '@apollo/client'; - - -export const CAPTURE_TWEET = gql` - mutation Capture($url:String!) { - capture(url:$url) { - id - fullText - favoriteCount - retweetCount - postedAt - author { - userName - screenName - profileImageURL - } - } - } -`; - -export const SEARCH_TWEET = gql` - query Search($input: SearchInput!) { - search(input: $input, size: 21) { - id - fullText - lang - postedAt - captureThumbURL - author { - userName - screenName - profileImageURL - } - } - } -`; - -export const SEARCH_BY_USER = gql ` - query SearchByUser($userID: ID!) { - searchByUser(userID: $userID) { - id - fullText - lang - postedAt - captureThumbURL - author { - userName - screenName - profileImageURL - } - } - } -`; - -export const TWEET_BY_ID = gql` - query Tweet($id:ID!) { - tweet(id:$id) { - id - fullText - lang - postedAt - captureURL - retweetCount - favoriteCount - author { - id - userName - screenName - profileImageURL - } - resources { - id - url - mediaType - width - height - } - } - } -`; - -export const TWEET_IMAGE = gql` - query TweetImage($id:ID!) { - tweet(id:$id) { - id - captureURL - } - } -`; - - -export const CONTACT_US = gql` - mutation Contact($input:ContactInput! $id:ID, $captcha:String!) { - contact(input:$input, tweetID: $id, capthca: $captcha) - }`; diff --git a/web/app/src/pages/ContactPage.tsx b/web/app/src/pages/ContactPage.tsx index 767bde4..310e24b 100644 --- a/web/app/src/pages/ContactPage.tsx +++ b/web/app/src/pages/ContactPage.tsx @@ -1,9 +1,15 @@ import React, {createRef, FC, FormEvent, useState} from 'react'; -import {useMutation} from "@apollo/client"; -import {CONTACT_US} from "../graph/queries"; -import {Contact, ContactVariables} from "../graph/Contact"; +import {gql, useMutation} from "@apollo/client"; import ReCAPTCHA from "react-google-recaptcha"; import {CAPTCHA_KEY} from "../Constants"; +import {Contact, ContactVariables} from "./__generated__/Contact"; + + +const CONTACT_US = gql` + mutation Contact($input:ContactInput! $id:ID, $captcha:String!) { + contact(input:$input, tweetID: $id, capthca: $captcha) + }`; + type ContactPageProps = { tweetID?: string diff --git a/web/app/src/pages/HomePage.tsx b/web/app/src/pages/HomePage.tsx index 9e7041d..ba418f2 100644 --- a/web/app/src/pages/HomePage.tsx +++ b/web/app/src/pages/HomePage.tsx @@ -1,11 +1,29 @@ import React, {FC, FormEvent, useState} from "react"; import './HomePage.css'; -import {useMutation} from "@apollo/client"; +import {gql, useMutation} from "@apollo/client"; import {Redirect} from "react-router-dom"; -import {CAPTURE_TWEET} from "../graph/queries"; -import {Capture, CaptureVariables} from "../graph/Capture"; import {Helmet} from "react-helmet"; import {WEB_BASE_URL} from "../Constants"; +import {Capture, CaptureVariables} from "./__generated__/Capture"; + + +const CAPTURE_TWEET = gql` + mutation Capture($url:String!) { + capture(url:$url) { + id + fullText + favoriteCount + retweetCount + postedAt + author { + userName + screenName + profileImageURL + } + } + } +`; + const HomePage: FC = () => { const [url, setUrl] = useState(''); diff --git a/web/app/src/pages/SearchPage.tsx b/web/app/src/pages/SearchPage.tsx index e84da43..1976950 100644 --- a/web/app/src/pages/SearchPage.tsx +++ b/web/app/src/pages/SearchPage.tsx @@ -1,20 +1,35 @@ import React, {FC} from 'react'; import * as qs from 'query-string'; -import {useQuery} from "@apollo/client"; -import {SEARCH_TWEET} from "../graph/queries"; -import {Search, SearchVariables} from "../graph/Search"; +import {gql, useQuery} from "@apollo/client"; import notFound from '../assets/not_found.svg'; import './SearchPage.css'; import {Helmet} from "react-helmet"; import {WEB_BASE_URL} from "../Constants"; import algoliaLogo from '../assets/search-by-algolia-light-background.svg'; import {TweetCard} from "./TweetCard"; +import {Search, SearchVariables} from "./__generated__/Search"; const getQueryStringValue = (key: string, queryString = window.location.search): string => { const values = qs.parse(queryString); return values[key] as string; }; +const SEARCH_TWEET = gql` + query Search($input: SearchInput!) { + search(input: $input, size: 21) { + id + fullText + lang + postedAt + captureThumbURL + author { + userName + screenName + profileImageURL + } + } + } +`; const SearchPage: FC = () => { const q = getQueryStringValue('q'); diff --git a/web/app/src/pages/TweetPage.tsx b/web/app/src/pages/TweetPage.tsx index e83ffba..961f17a 100644 --- a/web/app/src/pages/TweetPage.tsx +++ b/web/app/src/pages/TweetPage.tsx @@ -1,17 +1,55 @@ import React, {FC, useEffect, useRef, useState} from "react"; import {Link, useParams} from "react-router-dom"; -import {useQuery} from "@apollo/client"; -import {TWEET_BY_ID, TWEET_IMAGE} from "../graph/queries"; -import {Tweet, Tweet_tweet, TweetVariables} from "../graph/Tweet"; +import {gql, useQuery} from "@apollo/client"; import {Helmet} from "react-helmet"; import moment from "moment"; -import {TweetImage, TweetImageVariables} from "../graph/TweetImage"; import folderImage from './../assets/folder.svg'; import {WEB_BASE_URL} from "../Constants"; import 'bootstrap/js/dist/modal'; import ContactPage from "./ContactPage"; import Loading from "../components/Loading"; import Modal from "bootstrap/js/src/modal"; +import {Tweet, Tweet_tweet, TweetVariables} from "./__generated__/Tweet"; +import {TweetImage, TweetImageVariables} from "./__generated__/TweetImage"; + + +const TWEET_IMAGE = gql` + query TweetImage($id:ID!) { + tweet(id:$id) { + id + captureURL + } + } +`; + + +const TWEET_BY_ID = gql` + query Tweet($id:ID!) { + tweet(id:$id) { + id + fullText + lang + postedAt + captureURL + retweetCount + favoriteCount + author { + id + userName + screenName + profileImageURL + } + resources { + id + url + mediaType + width + height + } + } + } +`; + const TweetPage: FC = () => { const {id} = useParams(); diff --git a/web/app/src/pages/UserPage.tsx b/web/app/src/pages/UserPage.tsx index d2c35e8..22f6788 100644 --- a/web/app/src/pages/UserPage.tsx +++ b/web/app/src/pages/UserPage.tsx @@ -1,15 +1,31 @@ import React, {FC} from 'react'; -import {useQuery} from "@apollo/client"; -import {SEARCH_BY_USER} from "../graph/queries"; +import {gql, useQuery} from "@apollo/client"; import notFound from '../assets/not_found.svg'; import './SearchPage.css'; import {Helmet} from "react-helmet"; import {WEB_BASE_URL} from "../Constants"; import {TweetCard} from "./TweetCard"; -import {SearchByUser, SearchByUserVariables} from "../graph/SearchByUser"; import {useParams} from 'react-router-dom'; +import {SearchByUser, SearchByUserVariables} from "./__generated__/SearchByUser"; +const SEARCH_BY_USER = gql ` + query SearchByUser($userID: ID!) { + searchByUser(userID: $userID) { + id + fullText + lang + postedAt + captureThumbURL + author { + userName + screenName + profileImageURL + } + } + } +`; + const UserPage: FC = () => { let {id} = useParams(); const {data, loading, error} = useQuery(SEARCH_BY_USER, { diff --git a/web/app/src/graph/Capture.ts b/web/app/src/pages/__generated__/Capture.ts similarity index 100% rename from web/app/src/graph/Capture.ts rename to web/app/src/pages/__generated__/Capture.ts diff --git a/web/app/src/graph/Contact.ts b/web/app/src/pages/__generated__/Contact.ts similarity index 86% rename from web/app/src/graph/Contact.ts rename to web/app/src/pages/__generated__/Contact.ts index 8120a7a..1d8b7db 100644 --- a/web/app/src/graph/Contact.ts +++ b/web/app/src/pages/__generated__/Contact.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { ContactInput } from "./globalTypes"; +import { ContactInput } from "./../../../__generated__/globalTypes"; // ==================================================== // GraphQL mutation operation: Contact diff --git a/web/app/src/graph/Search.ts b/web/app/src/pages/__generated__/Search.ts similarity index 91% rename from web/app/src/graph/Search.ts rename to web/app/src/pages/__generated__/Search.ts index 0575ada..44e8d5d 100644 --- a/web/app/src/graph/Search.ts +++ b/web/app/src/pages/__generated__/Search.ts @@ -3,7 +3,7 @@ // @generated // This file was automatically generated and should not be edited. -import { SearchInput } from "./globalTypes"; +import { SearchInput } from "./../../../__generated__/globalTypes"; // ==================================================== // GraphQL query operation: Search diff --git a/web/app/src/graph/SearchByUser.ts b/web/app/src/pages/__generated__/SearchByUser.ts similarity index 100% rename from web/app/src/graph/SearchByUser.ts rename to web/app/src/pages/__generated__/SearchByUser.ts diff --git a/web/app/src/graph/Tweet.ts b/web/app/src/pages/__generated__/Tweet.ts similarity index 100% rename from web/app/src/graph/Tweet.ts rename to web/app/src/pages/__generated__/Tweet.ts diff --git a/web/app/src/graph/TweetImage.ts b/web/app/src/pages/__generated__/TweetImage.ts similarity index 100% rename from web/app/src/graph/TweetImage.ts rename to web/app/src/pages/__generated__/TweetImage.ts diff --git a/web/app/yarn.lock b/web/app/yarn.lock index ec8aaa8..dc09981 100644 --- a/web/app/yarn.lock +++ b/web/app/yarn.lock @@ -1631,12 +1631,13 @@ "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" -"@types/jest@^24.9.1": - version "24.9.1" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-24.9.1.tgz#02baf9573c78f1b9974a5f36778b366aa77bd534" - integrity sha512-Fb38HkXSVA4L8fGKEZ6le5bB8r6MRWlOCZbVuWZcmOMSCd2wCYOwN1ibj8daIoV9naq7aaOZjrLCoCMptKU/4Q== +"@types/jest@^26.0.8": + version "26.0.8" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.8.tgz#f5c5559cf25911ce227f7ce30f1f160f24966369" + integrity sha512-eo3VX9jGASSuv680D4VQ89UmuLZneNxv2MCZjfwlInav05zXVJTzfc//lavdV0GPwSxsXJTy2jALscB7Acqg0g== dependencies: - jest-diff "^24.3.0" + jest-diff "^25.2.1" + pretty-format "^25.2.1" "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4": version "7.0.5" @@ -1712,12 +1713,12 @@ "@types/react" "*" "@types/react@*", "@types/react@^16.9.43": - version "16.9.43" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.43.tgz#c287f23f6189666ee3bebc2eb8d0f84bcb6cdb6b" - integrity sha512-PxshAFcnJqIWYpJbLPriClH53Z2WlJcVZE+NP2etUtWQs2s7yIMj3/LDKZT/5CHJ/F62iyjVCDu2H3jHEXIxSg== + version "16.9.44" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.44.tgz#da84b179c031aef67dc92c33bd3401f1da2fa3bc" + integrity sha512-BtLoJrXdW8DVZauKP+bY4Kmiq7ubcJq+H/aCpRfvPF7RAT3RwR73Sg8szdc2YasbAlWBDrQ6Q+AFM0KwtQY+WQ== dependencies: "@types/prop-types" "*" - csstype "^2.2.0" + csstype "^3.0.2" "@types/stack-utils@^1.0.1": version "1.0.1" @@ -1985,9 +1986,9 @@ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abab@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" - integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== + version "2.0.4" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.4.tgz#6dfa57b417ca06d21b2478f0e638302f99c2405c" + integrity sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" @@ -3686,10 +3687,10 @@ cssstyle@^1.0.0, cssstyle@^1.1.1: dependencies: cssom "0.3.x" -csstype@^2.2.0: - version "2.6.13" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" - integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== +csstype@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.2.tgz#ee5ff8f208c8cd613b389f7b222c9801ca62b3f7" + integrity sha512-ofovWglpqoqbfLNOTBNZLSbMuGrblAf1efvvArGKOZMBrIoJeu5UsAipQolkijtyQx5MtAzT/J9IHj/CEY1mJw== cyclist@^1.0.1: version "1.0.1" @@ -3869,6 +3870,11 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + diffie-hellman@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -4052,9 +4058,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.488: - version "1.3.515" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.515.tgz#96683d2c2be9bf83f6cca75d504a7b443d763c08" - integrity sha512-C9h2yLQwNSK/GTtWQsA9O6mLKv0ubmiAQgmz1HvHnAIH8g5Sje1shWxcooumbGiwgqvZ9yrTYULe4seMTgMYqQ== + version "1.3.516" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.516.tgz#03ec071b061e462b786bf7e7ce226fd7ab7cf1f6" + integrity sha512-WDM5AAQdOrvLqSX8g3Zd5AujBXfMxf96oeZkff0U2HF5op3tjShE+on2yay3r1UD4M9I3p0iHpAS4+yV8U8A9A== elliptic@^6.0.0, elliptic@^6.5.2: version "6.5.3" @@ -6054,7 +6060,7 @@ jest-config@^24.9.0: pretty-format "^24.9.0" realpath-native "^1.1.0" -jest-diff@^24.0.0, jest-diff@^24.3.0, jest-diff@^24.9.0: +jest-diff@^24.0.0, jest-diff@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== @@ -6064,6 +6070,16 @@ jest-diff@^24.0.0, jest-diff@^24.3.0, jest-diff@^24.9.0: jest-get-type "^24.9.0" pretty-format "^24.9.0" +jest-diff@^25.2.1: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + jest-docblock@^24.3.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" @@ -6122,6 +6138,11 @@ jest-get-type@^24.9.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + jest-haste-map@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" @@ -8620,7 +8641,7 @@ pretty-format@^24.0.0, pretty-format@^24.3.0, pretty-format@^24.9.0: ansi-styles "^3.2.0" react-is "^16.8.4" -pretty-format@^25.1.0, pretty-format@^25.5.0: +pretty-format@^25.1.0, pretty-format@^25.2.1, pretty-format@^25.5.0: version "25.5.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==