0.2.6 • Published 4 years ago

newhapppen-lib v0.2.6

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

#NewHappen-lib Biblioteca para interação com a API da NewHappen.

Instalação

Usando npm:

$ npm install newhappen-lib

Usando Yarn

$ Em breve

URL p/ acesso direto ao backend:

$ https://api-newhappen.herokuapp.com

Métodos auxiliares

Login

    import api from "newhapppen-lib";
    var login = "";//Login pode ser tanto o e-mail quanto o username 
    var password = "";
    
    api.login(login, password).then((user) => {
        /* Você pode verificar ou não se user == null, mas não é recomendado, visto que a lib já dispara uma exceção caso isso ocorra e retorna as mensagens responsáveis pelo erro */

        console.log(JSON.stringify(user))
        console.log("Logado com sucesso!")
    }).catch((errors) => {
        /* Em todas as chamadas, o Catch sempre retornará um Array onde cada elemento é uma string referente a um motivo do erro ter acontecido; 

        Ex: ["Usuario inexistente", 
        "Usuário com caracteres inválidos"]
        */
        console.log(errors);
    })

Cadastrar usuário

var user = {name: "Nome Qualquer Completo",
            username: "username_qualquer",
            password: "senhaqualquer",
            email: "email@qualquer.com"}

api.createUser(user).then( (user) => {
    console.log(JSON.stringify(user))
    console.log("Cadastrado com sucesso")
}).catch((errors) => {
    console.log(errors)
})
  • api.getUser ( id ): Pesquisa por um Usuário com determinado ID
  • api.getUsers (filters): Pesquisa usuários que casem com os filtros estabelecidos. Ex:api.getUsers({by_type: "Professional"})

  • api.updateUser ( id, user ): Atualiza os dados de determinado usuário

  • api.getPost ( id ): Pesquisa por um Post com determinado ID
  • api.getPosts (filters): Pesquisa posts que casem com os filtros estabelecidos. Ex:api.getPosts({by_title: "Titulo"})
  • api.createPost (post): Cadastra uma nova postagem.
  • api.updatePost (id, post): Edita uma postagem.
  • api.deletePost (id): Deleta determinada postagem

Métodos referente à entidade Address:

capi.getAddress(id)` Recupera os dados de um endereço com determinado ID

  • api.updateAddress(id, address) Atualizado um determinado endereço
  • api.deleteAddress(id) Deleta o endereço com determinado ID
  • api.createAddress(address) Cria um novo endereço pro atual usuário logado
  • api.getUserAddresses(user_id) Recupera todos os endereços de um determinado usuário

Atributos atuais de Address: :zipcode, :street, :district, :city, :state, :country, :reference

Métodos referente à entidade CurriculumItem:

  • api.getCurriculumItem(id) Retorna um determinado item de curriculum daquele ID específico
  • api.updateCurriculumItem(id, curriculum_item) Atualiza os dados de um determinado item de curriculum. curriculum_item deve ser um objeto JSON.
  • api.deleteCurriculumItem(id) Deleta um determinado item de curriculum daquele ID específico
  • api.createProfessionalCurriculumItem(user_id, curriculum_item) Cria um determinado CurriculumItem para o Profissional de ID informado
  • api.getProfessionalCurriculumItems(user_id) Retorna todos os items de curriculum de um determinado profissional.

user_id tem que ser um ID referente à um usuário com type Professional

Métodos referente à entidade ScheduleItem:

  • api.getScheduleItem(id) Retorna um determinado item de Schedule daquele ID específico
  • api.updateScheduleItem(id, schedule_item) Atualiza os dados de um determinado item de schedule. schedule_item deve ser um objeto JSON.
  • api.deleteScheduleItem(id) Deleta um determinado item de schedule daquele ID específico
  • api.createProfessionalScheduleItem(user_id, schedule_item) Cria um determinado ScheduleItem para o Profissional de ID informado
  • api.getProfessionalScheduleItem(user_id) Retorna todos os items de curriculum de um determinado profissional.

Métodos referente à entidade Appointment(Consulta):

  • api.getAppointment(id) Retorna um determinado item de Consulta daquele ID específico
  • api.updateAppointment(id, appointment) Atualiza os dados de um determinado item de Consulta. appointment deve ser um objeto JSON.
  • api.deleteAppointment(id) Deleta uma consulta
  • api.createUserYspecialAppointment(user_yspecial_id, appointment) Cria uma consulta para um UserYspecial
  • api.getUserYspecialAppointments(user_id) Retorna todas as consultas para um UserYspecial
  • api.getProfessionalAppointments(professional_id) Retorna todas as consultas de um determinado profissional

Atributos de Appointment

:professional_id, // ID
:professional_type, // Classe (Provavelmente "Professional")
:schedule_item_id, // ID da ScheduleItem no qual a consulta será marcada 
:value // Valor, em float
  {
        "id": 8,
        "created_at": "2020-04-28T04:59:09.557-03:00",
        "blocked": false,
        "followable": {
            "id": 6,
            "username": "username3",
            "name": "Nome 3",
            "type": null
        },
        "follower": {
            "id": 7,
            "username": "jonas",
            "name": "jonas",
            "type": null
        }
    }

Retornar informações de um usuário (requer login)

var user_criteria = {id: 1}

api.getUser(user_criteria).then( (users) => {
    console.log(JSON.stringify(users))
    console.log("Lista de usuários com os critérios informados")
}).catch((errors) => {
    console.log(errors)
})

Cadastrar post (requer login)

  var post =     {title: "Titulo ",
                  content: "Conteúdo",
                  feed: "yspecial" || "general"}

    api.createPost(post).then((post)=>{
        console.log(JSON.striginfy(post))
        console.log("Post criado com sucesso")
    }).catch(errors =>{
        console.log(errors)
    })

Editar post (requer login)

  var post = {  id: "1"
                title: "Titulo alterado",
                  content: "Conteúdo alterado",
                  feed: "yspecial"}
    api.editPost(post).then((post)=>{
        console.log(JSON.striginfy(post))
        console.log("Post editado com sucesso")
    }).catch(errors =>{
        console.log(errors)
    })

Deletar post (requer login)

  var post = {  id: "1" }
    api.deletePost(post).then((post)=>{
        console.log(JSON.striginfy(post))
        console.log("Post deletado com sucesso")
    }).catch(errors =>{
        console.log(errors)
    })

Seguir usuário (requer login)

  var user_id = 1
    api.followUser(user_id).then((follow)=>{
        console.log(JSON.striginfy(follow))
        console.log("Agora você está seguindo este usuário")
    }).catch(errors =>{
        console.log(errors)
    })

Deixar de seguir usuário (requer login)

  var follow_id = 90
    api.dismissFollow(follow_id).then((follow)=>{
        console.log(JSON.striginfy(follow))
        console.log("Agora você não está seguindo este usuário")
    }).catch(errors =>{
        console.log(errors)
    })

Lista de Followers de um determinado Usuário (requer login)

  var user_id = 1
    api.getFollowers(user_id).then((follows)=>{
        console.log(JSON.striginfy(follows))
    }).catch(errors =>{
        console.log(errors)
    })

Lista de Follows de um determinado Usuário

  var user_id = 1
    api.getFollows(user_id).then((follows)=>{
        console.log(JSON.striginfy(follows))
    }).catch(errors =>{
        console.log(errors)
    })

Follows = Pessoas que ele segue Followers = Seguidores que o usuário possui

Um objeto follow possui o seguinte formato:

var follow =     {
        "id": 8,
        "created_at": "2020-04-28T04:59:09.557-03:00",
        "blocked": false,
        "followable": {
            "id": X,
            "username": "XXXXXXXXXXXXX",
            "name": "XXXXXXXXXXX",
            "type": XXXX
        },
        "follower": {
            "id": X,
            "username": "jonXXXXXXXXXas",
            "name": "XXXXXXXXX",
            "type": XXXX
        }
    }

Executar sua própria query (requer login)

api.graph.query(`query($id: ID!){
                users(id: $id) {
                    id
                    username
                    email
                    type
                    ... on UserYspecial{
                        username
                        id
                        email
                        }
                    ... on Professional  {
                        cpf
                        professionalId
                        profession
                        }
                    ... on Company  {
                        fancyName
                        cnpj
                        }
                }
            }`).then(users => console.log(users))
            .catch(errors => console.log(errors))

Executar sua própria mutation (requer login)

api.graph.mutate(`(@autodeclare) {
        createPost(input: {title: $title 
                           content: $content
                           feed: $feed}){    
            post{
                id
                content
                title
                feed
                author{
                    name
                    id
                }
            }
        }
    }`).then(users => console.log(users))
            .catch(errors => console.log(errors))

Rodando testes

$ yarn test
0.2.6

4 years ago

0.2.5

4 years ago

0.2.4

4 years ago

0.2.3

4 years ago

0.2.2

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.9

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago