Giter Site home page Giter Site logo

api-postagens's Introduction

Oi pessoal, me chamo Iago Cavalcante

Trampo como Software Engineer e Consultor de Software, minha stack atualmente é Elixir/Phoenix, Javascript(React, RN, vue, node) e PHP

iagocavalcante

  • 🔭 Atualmente trabalhando no Agendflow e NossoMenu

  • 📝 Pode encontrar algumas coisas que posto no https://iagocavalcante.com

  • 💬 Pode tirar dúvidas comigo sobre Elixir, Javascript no geral, frontend moderno e arquitetura de software

  • 📫 Onde me achar ? [email protected]

  • ⚡ Fatos sobre mim ? Bom, gosto de jogar um futebol, ficar de molho, curtir a família e viajar por ai

iagocavalcante

iagoangelim iago-a-cavalcante

api-postagens's People

Contributors

renovate-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

api-postagens's Issues

feat: Novo tipo de requisição

Foi reportado que a api não estava funcionando com uma URL específica de artigo do medium (artigo), com isso foi percebido que a requisição desse artigo é feita com graphql, logo precisaremos implementar o parse desse tipo de requisição.

URL: https://medium.com/_/graphql

Requisição: POST

Exemplo de requisição:

{
   "operationName":"PostResponsesQuery",
   "variables":{
      "postId":"b479e457664c",
      "postResponsesPaging":{
         "limit":10
      }
   },
   "query":"query PostResponsesQuery($postId: ID!, $postResponsesPaging: PagingOptions) {\n  post(id: $postId) {\n    id\n    ...CloseDiscussion_post\n    postResponses {\n      count\n      responsesConnection(paging: $postResponsesPaging) {\n        pagingInfo {\n          next {\n            limit\n            to\n            __typename\n          }\n          __typename\n        }\n        stream {\n          itemType {\n            __typename\n            ... on StreamItemPostStoryResponse {\n              ...StoryResponse_storyResponse\n              __typename\n            }\n            ... on StreamItemPostSimpleResponse {\n              ...SimpleResponse_simpleResponse\n              __typename\n            }\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n\nfragment CloseDiscussion_post on Post {\n  id\n  responsesLocked\n  isLockedResponse\n  __typename\n}\n\nfragment StoryResponse_storyResponse on StreamItemPostStoryResponse {\n  post {\n    ...ResponseHeader_post\n    ...ResponseQuote_post\n    id\n    responsesCount\n    creator {\n      isBlocking\n      __typename\n    }\n    clapCount\n    ...PostPresentationTracker_post\n    previewContent {\n      bodyModel {\n        paragraphs {\n          text\n          type\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n  __typename\n}\n\nfragment ResponseHeader_post on Post {\n  createdAt\n  creator {\n    ...UserAvatar_user\n    isBlocking\n    __typename\n  }\n  mediumUrl\n  __typename\n}\n\nfragment UserAvatar_user on User {\n  username\n  id\n  name\n  imageId\n  mediumMemberAt\n  __typename\n}\n\nfragment PostPresentationTracker_post on Post {\n  id\n  visibility\n  previewContent {\n    isFullContent\n    __typename\n  }\n  collection {\n    id\n    slug\n    __typename\n  }\n  __typename\n}\n\nfragment ResponseQuote_post on Post {\n  inResponseToMediaResource {\n    href\n    mediumQuote {\n      quoteId\n      startOffset\n      endOffset\n      paragraphs {\n        ...TextParagraph_paragraph\n        __typename\n      }\n      ...buildQuotePreviewParagraph_quote\n      __typename\n    }\n    __typename\n  }\n  __typename\n}\n\nfragment buildQuotePreviewParagraph_quote on Quote {\n  paragraphs {\n    id\n    text\n    type\n    markups {\n      end\n      start\n      type\n      __typename\n    }\n    __typename\n  }\n  startOffset\n  endOffset\n  __typename\n}\n\nfragment TextParagraph_paragraph on Paragraph {\n  type\n  hasDropCap\n  ...Markups_paragraph\n  ...ParagraphRefsMapContext_paragraph\n  __typename\n}\n\nfragment Markups_paragraph on Paragraph {\n  name\n  text\n  hasDropCap\n  dropCapImage {\n    ...MarkupNode_data_dropCapImage\n    __typename\n  }\n  markups {\n    type\n    start\n    end\n    href\n    anchorType\n    userId\n    linkMetadata {\n      httpStatus\n      __typename\n    }\n    __typename\n  }\n  __typename\n}\n\nfragment MarkupNode_data_dropCapImage on ImageMetadata {\n  ...DropCap_image\n  __typename\n}\n\nfragment DropCap_image on ImageMetadata {\n  id\n  originalHeight\n  originalWidth\n  __typename\n}\n\nfragment ParagraphRefsMapContext_paragraph on Paragraph {\n  id\n  name\n  text\n  __typename\n}\n\nfragment SimpleResponse_simpleResponse on StreamItemPostSimpleResponse {\n  post {\n    id\n    createdAt\n    firstPublishedAt\n    latestPublishedAt\n    title\n    creator {\n      id\n      name\n      username\n      imageId\n      mediumMemberAt\n      isBlocking\n      __typename\n    }\n    clapCount\n    viewerClapCount\n    isPublished\n    voterCount\n    responsesCount\n    allowResponses\n    latestRev\n    recommenders {\n      id\n      name\n      __typename\n    }\n    mediumUrl\n    content {\n      bodyModel {\n        paragraphs {\n          text\n          __typename\n        }\n        ...getSlateBodyFromPostBodyModel_bodyModel\n        __typename\n      }\n      __typename\n    }\n    collection {\n      id\n      slug\n      __typename\n    }\n    isLimitedState\n    ...PostPresentationTracker_post\n    ...PostScrollTracker_post\n    ...ResponseQuote_post\n    __typename\n  }\n  __typename\n}\n\nfragment PostScrollTracker_post on Post {\n  id\n  collection {\n    id\n    __typename\n  }\n  sequence {\n    sequenceId\n    __typename\n  }\n  __typename\n}\n\nfragment getSlateBodyFromPostBodyModel_bodyModel on RichText {\n  paragraphs {\n    id\n    name\n    text\n    type\n    markups {\n      type\n      start\n      end\n      href\n      anchorType\n      userId\n      linkMetadata {\n        httpStatus\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n  __typename\n}\n"
}

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • fix(deps): replace dependency hapi with @hapi/hapi ^18.0.0
  • chore(deps): update dependency eslint to v9
  • fix(deps): update dependency nodemon to v3
  • 🔐 Create all rate-limited PRs at once 🔐

Edited/Blocked

These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

npm
package.json
  • axios ^0.19.0
  • babel-core ^6.26.3
  • babel-preset-es2015 ^6.24.1
  • boom ^7.3.0
  • dotenv ^8.0.0
  • hapi ^18.0.0
  • medium-sdk 0.0.4
  • nodemon ^2.0.0
  • pm2 ^4.0.0
  • xml2js ^0.4.19
  • eslint 7.5.0
  • jest 25.5.4
  • node 12.16.0

  • Check this box to trigger a request for Renovate to run again on this repository

Code review lubien

case na linha 24 ao inves de assumir sucesso

jason decode versao sem !

poderia virar um with pros dois casos acima

Map.get nao da pra trocar por Access protocol? ["a"]["b"]...

fn x -> replace_paragraphs(x) end
&replace_paragraphs/1

replace_tag podia ser um pattern match em funcao mas isso sou so eu

safe_replace_tag merecia um nome diff ou um doc explicando o que eh

if paragraph
       |> Map.get("iframe") do

access

esses Map.get podiam virar access todos provavelmente

Enum.count(paragraph |> Map.get("markups", [])) > 0

pipe dentro de argumento nao ajuda na legibilidade

troca de Enum.count pra Enum.any? pois voce nao quer o count total e isso transversa a lista toda pensando q voce precisa

linha 110 usar case ou with

mesma coisa na 124

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.