├── .env.example ├── .github └── workflows │ └── pr_tests.yaml ├── .gitignore ├── .vscode └── launch.json ├── README.md ├── jest.config.js ├── knexfile.ts ├── package.json ├── src ├── config │ └── config.ts ├── dataloaders │ └── dataloaders.ts ├── db │ ├── connection.ts │ ├── migrations │ │ ├── 20210105143144_create_users_table.ts │ │ ├── 20210105203918_add_display_name_and_avatar_to_users.ts │ │ ├── 20210108163710_add_tweets_table.ts │ │ ├── 20210111143426_create_likes_table.ts │ │ ├── 20210113145320_create_followers_table.ts │ │ ├── 20210113151125_add_bio_banner_to_users.ts │ │ ├── 20210124150546_create_hashtags_table.ts │ │ ├── 20210124150743_create_hashtags_tweets_table.ts │ │ ├── 20210125102117_create_previews_table.ts │ │ ├── 20210125102128_create_previews_tweets_table.ts │ │ ├── 20210127101326_create_retweets_table.ts │ │ ├── 20210128124332_create_bookmarks_table.ts │ │ └── 20210203162821_create_medias_table.ts │ └── seeds │ │ └── seed.ts ├── dto │ ├── AddTweetPayload.ts │ ├── LoginPayload.ts │ └── RegisterPayload.ts ├── entities │ ├── Hashtag.ts │ ├── LikeRetweetAuthor.ts │ ├── Media.ts │ ├── Preview.ts │ ├── Tweet.ts │ ├── TweetUserInfo.ts │ └── User.ts ├── errors │ └── InvalidTokenError.ts ├── events │ └── scrapPreviewEmitter.ts ├── index.ts ├── middlewares │ └── authChecker.ts ├── repositories │ ├── BaseRepository.ts │ ├── FollowerRepository.ts │ ├── TweetRepository.ts │ └── index.ts ├── resolvers │ ├── AuthResolver.ts │ ├── BookmarkResolver.ts │ ├── FollowerResolver.ts │ ├── HashtagResolver.ts │ ├── LikeResolver.ts │ ├── RetweetResolver.ts │ ├── TweetResolver.ts │ └── UserResolver.ts ├── server.ts ├── tests │ ├── __snapshots__ │ │ └── auth.test.ts.snap │ ├── auth.test.ts │ ├── bookmarks.test.ts │ ├── feed.test.ts │ ├── followers.test.ts │ ├── hashtags.test.ts │ ├── helpers.ts │ ├── likes.test.ts │ ├── queries │ │ ├── auth.queries.ts │ │ ├── bookmarks.queries.ts │ │ ├── followers.queries.ts │ │ ├── likes.queries.ts │ │ ├── retweets.queries.ts │ │ └── tweets.queries.ts │ ├── retweets.test.ts │ ├── setup.ts │ └── tweets.test.ts ├── types │ └── types.d.ts ├── utils │ └── utils.ts └── validators │ └── Unique.ts ├── tsconfig.json └── yarn.lock /.env.example: -------------------------------------------------------------------------------- 1 | PORT= 2 | JWT_SECRET= -------------------------------------------------------------------------------- /.github/workflows/pr_tests.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/.github/workflows/pr_tests.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/.gitignore -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/README.md -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/jest.config.js -------------------------------------------------------------------------------- /knexfile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/knexfile.ts -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/package.json -------------------------------------------------------------------------------- /src/config/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/config/config.ts -------------------------------------------------------------------------------- /src/dataloaders/dataloaders.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/dataloaders/dataloaders.ts -------------------------------------------------------------------------------- /src/db/connection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/connection.ts -------------------------------------------------------------------------------- /src/db/migrations/20210105143144_create_users_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210105143144_create_users_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210105203918_add_display_name_and_avatar_to_users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210105203918_add_display_name_and_avatar_to_users.ts -------------------------------------------------------------------------------- /src/db/migrations/20210108163710_add_tweets_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210108163710_add_tweets_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210111143426_create_likes_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210111143426_create_likes_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210113145320_create_followers_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210113145320_create_followers_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210113151125_add_bio_banner_to_users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210113151125_add_bio_banner_to_users.ts -------------------------------------------------------------------------------- /src/db/migrations/20210124150546_create_hashtags_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210124150546_create_hashtags_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210124150743_create_hashtags_tweets_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210124150743_create_hashtags_tweets_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210125102117_create_previews_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210125102117_create_previews_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210125102128_create_previews_tweets_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210125102128_create_previews_tweets_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210127101326_create_retweets_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210127101326_create_retweets_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210128124332_create_bookmarks_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210128124332_create_bookmarks_table.ts -------------------------------------------------------------------------------- /src/db/migrations/20210203162821_create_medias_table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/migrations/20210203162821_create_medias_table.ts -------------------------------------------------------------------------------- /src/db/seeds/seed.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/db/seeds/seed.ts -------------------------------------------------------------------------------- /src/dto/AddTweetPayload.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/dto/AddTweetPayload.ts -------------------------------------------------------------------------------- /src/dto/LoginPayload.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/dto/LoginPayload.ts -------------------------------------------------------------------------------- /src/dto/RegisterPayload.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/dto/RegisterPayload.ts -------------------------------------------------------------------------------- /src/entities/Hashtag.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/entities/Hashtag.ts -------------------------------------------------------------------------------- /src/entities/LikeRetweetAuthor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/entities/LikeRetweetAuthor.ts -------------------------------------------------------------------------------- /src/entities/Media.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/entities/Media.ts -------------------------------------------------------------------------------- /src/entities/Preview.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/entities/Preview.ts -------------------------------------------------------------------------------- /src/entities/Tweet.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/entities/Tweet.ts -------------------------------------------------------------------------------- /src/entities/TweetUserInfo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/entities/TweetUserInfo.ts -------------------------------------------------------------------------------- /src/entities/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/entities/User.ts -------------------------------------------------------------------------------- /src/errors/InvalidTokenError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/errors/InvalidTokenError.ts -------------------------------------------------------------------------------- /src/events/scrapPreviewEmitter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/events/scrapPreviewEmitter.ts -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/index.ts -------------------------------------------------------------------------------- /src/middlewares/authChecker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/middlewares/authChecker.ts -------------------------------------------------------------------------------- /src/repositories/BaseRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/repositories/BaseRepository.ts -------------------------------------------------------------------------------- /src/repositories/FollowerRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/repositories/FollowerRepository.ts -------------------------------------------------------------------------------- /src/repositories/TweetRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/repositories/TweetRepository.ts -------------------------------------------------------------------------------- /src/repositories/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/repositories/index.ts -------------------------------------------------------------------------------- /src/resolvers/AuthResolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/resolvers/AuthResolver.ts -------------------------------------------------------------------------------- /src/resolvers/BookmarkResolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/resolvers/BookmarkResolver.ts -------------------------------------------------------------------------------- /src/resolvers/FollowerResolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/resolvers/FollowerResolver.ts -------------------------------------------------------------------------------- /src/resolvers/HashtagResolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/resolvers/HashtagResolver.ts -------------------------------------------------------------------------------- /src/resolvers/LikeResolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/resolvers/LikeResolver.ts -------------------------------------------------------------------------------- /src/resolvers/RetweetResolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/resolvers/RetweetResolver.ts -------------------------------------------------------------------------------- /src/resolvers/TweetResolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/resolvers/TweetResolver.ts -------------------------------------------------------------------------------- /src/resolvers/UserResolver.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/resolvers/UserResolver.ts -------------------------------------------------------------------------------- /src/server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/server.ts -------------------------------------------------------------------------------- /src/tests/__snapshots__/auth.test.ts.snap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/__snapshots__/auth.test.ts.snap -------------------------------------------------------------------------------- /src/tests/auth.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/auth.test.ts -------------------------------------------------------------------------------- /src/tests/bookmarks.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/bookmarks.test.ts -------------------------------------------------------------------------------- /src/tests/feed.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/feed.test.ts -------------------------------------------------------------------------------- /src/tests/followers.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/followers.test.ts -------------------------------------------------------------------------------- /src/tests/hashtags.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/hashtags.test.ts -------------------------------------------------------------------------------- /src/tests/helpers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/helpers.ts -------------------------------------------------------------------------------- /src/tests/likes.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/likes.test.ts -------------------------------------------------------------------------------- /src/tests/queries/auth.queries.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/queries/auth.queries.ts -------------------------------------------------------------------------------- /src/tests/queries/bookmarks.queries.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/queries/bookmarks.queries.ts -------------------------------------------------------------------------------- /src/tests/queries/followers.queries.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/queries/followers.queries.ts -------------------------------------------------------------------------------- /src/tests/queries/likes.queries.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/queries/likes.queries.ts -------------------------------------------------------------------------------- /src/tests/queries/retweets.queries.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/queries/retweets.queries.ts -------------------------------------------------------------------------------- /src/tests/queries/tweets.queries.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/queries/tweets.queries.ts -------------------------------------------------------------------------------- /src/tests/retweets.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/retweets.test.ts -------------------------------------------------------------------------------- /src/tests/setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/setup.ts -------------------------------------------------------------------------------- /src/tests/tweets.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/tests/tweets.test.ts -------------------------------------------------------------------------------- /src/types/types.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/types/types.d.ts -------------------------------------------------------------------------------- /src/utils/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/utils/utils.ts -------------------------------------------------------------------------------- /src/validators/Unique.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/src/validators/Unique.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ips-coding-challenge/challenge_twitter/HEAD/yarn.lock --------------------------------------------------------------------------------