- Si no dispones de elasticsearch, puedes descargarlo aquí.
- Descarga el proyecto, instala dependencias y arranca el proyecto.
git clone https://github.com/joseanfernandez/hackathon-ocupa2-backend.git
cd hackathon-ocupa2-backend
npm install
npm start
-
Usa las dos primeras rutas del apartado General en el orden establecido.
Con esto tendrás creados los índices necesarios y almacenado los hashtags con su id para futuras consultas.- /elasticSetup
- /populateHashtagIndex
- Configuración de elasticsearch
GET /elasticSetup
Para mayor comodidad, se ha creado una ruta que genera los índices con el mapping en elasticsearch.
- Poblar base de de datos con todos los hashtags
GET /populateHashtagIndex
Guarda todos los hashtags con su categoría e id para hacer las peticiones de los posts. Una vez guardado ese hashtag, el id se consultará en nuestra base de datos local (elasticsearch), evitando peticiones a la API.
- Hashtags
GET /hashtags
Listado de todos los hashtags almacenados en elasticsearch.
- Follow
GET /twitter/follow?id={user_id}&action={follow/unfollow}
- Like
GET /twitter/like?id={tweetId}&action={like/dislike}
- Retweet
GET /twitter/retweet?id={tweetId}&action={retweet/unretweet}
- Tweets por categoría
GET /twitter/getTweets/category?name={category}
(Usa nuestra bbdd elasticsearch)
- Tweets por hashtag
GET /twitter/getTweets/hashtag?name={hashtag}
(Usa nuestra bbdd elasticsearch)
- Tweets desde la API
GET /twitter/getTweetsFromApi?name={hashtag}
(Usa directamente la API proporcionada, devolviendo tweet con detalles)
- Guardar tweets desde la API
GET /twitter/saveTweetsFromApi?name={hashtag}
(Guarda en elasticsearch todos los tweets con detalles)
- Follow
GET /instagram/follow?id={user_id}&action={follow/unfollow}
- Like
GET /instagram/like?id={postId}&action={like/dislike}
- Posts por categoría
GET /instagram/getPosts/category?name={category}
(Usa nuestra bbdd elasticsearch)
- Posts por hashtag
GET /instagram/getPosts/hashtag?name={hashtag}
(Usa nuestra bbdd elasticsearch)
- Guardar posts desde la API
GET /instagram/savePostsFromApi?name={hashtag}&type={recent_media/top_media}
(Guarda en elasticsearch todos los posts con detalles)