newhapppen-lib v0.2.6
#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 IDapi.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árioapi.getPost ( id )
: Pesquisa por um Post com determinado IDapi.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çoapi.deleteAddress(id)
Deleta o endereço com determinado IDapi.createAddress(address)
Cria um novo endereço pro atual usuário logadoapi.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íficoapi.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íficoapi.createProfessionalCurriculumItem(user_id, curriculum_item)
Cria um determinado CurriculumItem para o Profissional de ID informadoapi.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íficoapi.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íficoapi.createProfessionalScheduleItem(user_id, schedule_item)
Cria um determinado ScheduleItem para o Profissional de ID informadoapi.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íficoapi.updateAppointment(id, appointment)
Atualiza os dados de um determinado item de Consulta. appointment deve ser um objeto JSON.api.deleteAppointment(id)
Deleta uma consultaapi.createUserYspecialAppointment(user_yspecial_id, appointment)
Cria uma consulta para um UserYspecialapi.getUserYspecialAppointments(user_id)
Retorna todas as consultas para um UserYspecialapi.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
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago