Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrDadosLoginVazio = errors.New("login ou senha estão vazios") ErrCpfInvalido = errors.New("cpf inválido") ErrIdUfuTamanhoInvalido = errors.New("tamanho do id ufu inválido") ErrDadosLoginIncorretos = errors.New("usuário ou senha estão incorretos") ErrAlgoDeuErradoGenerico = errors.New("o servidor retornou uma resposta vazia") ErrRespostaInvalidaServidor = errors.New("o servidor remoto nos enviou uma resposta invalida") ErrNãoHáRefeições = errors.New("não há refeições agendadas para hoje") //Erro retornado quando não há refeições agendadas para hoje. ErrCampusInvalido = errors.New("campus inválido") )
var Campi = map[string]Campus{
"sm": {ID: 277, Nome: "Santa Mônica"},
"um": {ID: 279, Nome: "Umuarama"},
"gl": {ID: 1747, Nome: "Glória"},
"po": {ID: 278, Nome: "Pontal"},
"mc": {ID: 6097, Nome: "Monte Carmelo"},
}
var ( ClienteHTTP = http.Client{ Timeout: 15 * time.Second, } //Cliente HTTP usado em todas as requsições, com timeout de 15 segundos. Pode ser alterado para atender necessidades específicas. )
Functions ¶
func Criptografar ¶
A função Criptografar prepara um JSON (requestParams) para ser enviado para a API do aplicativo móvel da UFU. Retorna um JSON criptografado e um erro.
func Descriptografar ¶
A função Descriptografar descriptografa a respostas da API do aplicativo móvel da UFU. Retorna um JSON descriptografado e um erro.
Types ¶
type Cardapio ¶
type Cardapio struct {
Titulo string `json:"titulo"` //Título do restaurante (Ex: 2024/12/16 - Cardápio Restaurante Universitário - Santa Mônica)
Local string `json:"local"` //Local do restaurante (Ex: Restaurante Universitário - Santa Mônica)
Mensagem string `json:"mensagem"` //Alguma mensagem do restaurante, não parece ser usado
PrincipalAlmoco string `json:"principal_almoco"` //Proteina principal do almoço
VegetarianoAlmoco string `json:"vegetariano_almoco"` //Proteina vegetariana do almoço
ArrozAlmoco string `json:"arroz_almoco"` //Tipo de arroz do almoço
FeijaoAlmoco string `json:"feijao_almoco"` //Tipo de feijão do almoço
GuarnicaoAlmoco string `json:"guarnicao_almoco"` //Guarnição do almoço
SaladaAlmoco string `json:"salada_almoco"` //Salada do almoço
SobremesaAlmoco string `json:"sobremesa_almoco"` //Sobremesa do almoço
SucoAlmoco string `json:"suco_almoco"` //Suco do almoço
Data string `json:"data"` //Data do cardápio (Ex: 16/12/2024)
PrincipalJantar string `json:"principal_jantar"` //Proteina principal do jantar
VegetarianoJantar string `json:"vegetariano_jantar"` //Proteina vegetariana do jantar
ArrozJantar string `json:"arroz_jantar"` //Tipo de arroz do jantar
FeijaoJantar string `json:"feijao_jantar"` //Tipo de feijão do jantar
GuarnicaoJantar string `json:"guarnicao_jantar"` //Guarnição do jantar
SaladaJantar string `json:"salada_jantar"` //Salada do jantar
SobremesaJantar string `json:"sobremesa_jantar"` //Sobremesa do jantar
SucoJantar string `json:"suco_jantar"` //Suco do jantar
Nid string `json:"nid"` //ID interno do cardápio
}
A estrutura Cardapio contém as informações de um cardápio de refeições da UFU. É retornado na função ObterTodosOsCardapios.
func ObterCardapioPorCampus ¶
func ObterTodosOsCardapios ¶
ObterTodosOsCardapios é a função que obtém todos os cardápios de refeições da UFU. Retorna um slice de Cardapio e um erro.
type DadosLoginMobile ¶
type DadosLoginMobile struct {
ResultType string `json:"resultType"` //Descrição do tipo do resultado. Sempre "SUCCESS" se o login for bem sucedido.
ResultCode string `json:"resultCode"` //Código do resultado. Sempre "s.0002" se o login for bem sucedido.
Nome string `json:"nome"` //Nome do usuário.
Token string `json:"token"` //Token de autenticação.
Perfis []Perfis `json:"perfis"` //Perfis do usuário.
PerfilAtivo PerfilAtivo `json:"perfilAtivo"` //Perfil ativo do usuário.
Email *string `json:"email"` //Email do usuário, pode ser nulo.
Avatar string `json:"avatar"` //Avatar do usuário, em base64.
DataExpMillis int64 `json:"dataExpMillis"` //Data de expiração do token, Unix timestamp em milisegundos.
}
func LoginViaMobile ¶
func LoginViaMobile(email, senha string) (*DadosLoginMobile, error)
func (*DadosLoginMobile) BuscarIdentidadeDigital ¶
func (d *DadosLoginMobile) BuscarIdentidadeDigital() (*IdentidadeDigital, error)
type DadosSSO ¶
type DadosSSO struct {
Cpf string `json:"cpf"` //CPF do usuário
Nome string `json:"nome"` //Nome do usuário
Chave string `json:"chave"` //Token de autenticação
Email string `json:"email"` //Email do usuário
ExpiraEm int `json:"expira_em"` //Data de expiração do token de autenticação, Unix timestamp em milisegundos
IDPessoa int `json:"id_pessoa"` //ID interno da pessoa
EmitidoEm int `json:"emitido_em"` //Data de emissão do token de autenticação , Unix timestamp em milisegundos
AccessTokenID string `json:"access_token_id"` //ID do token de autenticação
Roles []string `json:"roles"` //Perfis do usuário
Perfis string `json:"perfis"` //Quantidade de perfis do usuário
Cookies []*http.Cookie //Cookies da sessão
}
DadosSSO é a estrutura que contém as informações do usuário autenticado no SSO. É retornado na função LoginViaSSO.
func LoginViaSSO ¶
LoginViaSSO é a função que realiza o login no sistema da UFU usando a api do SSO. Retorna um ponteiro para DadosSSO e um erro.
type ErrorMobile ¶
type ErrorMobile struct {
Timestamp int64 `json:"timestamp"` //Timestamp do erro
Status int `json:"status"` //Status http do erro
Error string `json:"error"` //Tipo do erro
Exception string `json:"exception"` //Exceção do erro
Message string `json:"message"` //Mensagem do erro
Path string `json:"path"` //Caminho do erro
}
type IdUfu ¶
type IdUfu struct {
ID int `json:"id"` //ID da identidade digital
Matricula string `json:"matricula"` //Matrícula do aluno
Nome string `json:"nome"` //Nome do aluno
NomePai string `json:"nomePai"` //Nome do pai do aluno. Pode ser vazio
NomeMae string `json:"nomeMae"` //Nome da mãe do aluno.
RG string `json:"rg"` //RG do aluno
OrgaoEmissor string `json:"orgaoEmissor"` //Órgão emissor do RG
CPF string `json:"cpf"` //CPF do aluno
Naturalidade string `json:"naturalidade"` //Naturalidade do aluno
Vinculo string `json:"vinculo"` //Vínculo (aluno, servidor, etc)
DataNascimento int64 `json:"dataNascimento"` //Data de nascimento do aluno, Unix timestamp em milisegundos
CodigoBarra string `json:"codigoBarra"` //Dado do QR Code da identidade digital
Informacao string `json:"informacao"` //Curso, tipo de curso e turno (Ex: "Graduação em Sistemas de Informação: Bacharelado - Noturno")
SituacaoDescricao string `json:"situacaoDescricao"` //Situação da identidade digital
Situacao int `json:"situacao"` //Situação da identidade digital, 3 = Ativa
Foto string `json:"foto"` //Foto em base64
}
A estrutura IdUfu contém as informações de uma identidade digital da UFU. É retornado na função ObterIdUfu.
func ObterIdUfu ¶
ObterIdUfu é a função que obtém as informações de uma identidade digital da UFU. Retorna um ponteiro para IdUfu e um erro. O parâmetro id é o número da identidade digital, presente no QR Code. Por exemplo, para o QR Code "https://www.sistemas.ufu.br/valida-ufu/#/id-digital/123123456789", o id é "123123456789".
type IdentidadeDigital ¶
type IdentidadeDigital struct {
Situacao string `json:"situacao"` //Situação da identidade digital, 3 = Ativa
Nome string `json:"nome"` //Nome do aluno
Naturalidade string `json:"naturalidade"` //Naturalidade do aluno
Informacao string `json:"informacao"` //Curso, tipo de curso e turno (Ex: "Graduação em Sistemas de Informação: Bacharelado - Noturno")
CodigoBarra string `json:"codigoBarra"` //Dado do QR Code da identidade digital
Foto string `json:"foto"` //Foto em base64
Rg string `json:"rg"` //RG do aluno
OrgaoEmissor string `json:"orgaoEmissor"` //Órgão emissor do RG
Matricula string `json:"matricula"` //Matrícula do aluno
Cpf string `json:"cpf"` //CPF do aluno
NomePai string `json:"nomePai"` //Nome do pai do aluno. Pode ser vazio
Vinculo string `json:"vinculo"` //Vínculo (aluno, servidor, etc)
ID string `json:"id"` //ID do aluno no sistema
DataNascimento time.Time `json:"dataNascimento"` //Data de nascimento do aluno,
NomeMae string `json:"nomeMae"` //Nome da mãe do aluno.
SituacaoDescricao string `json:"situacaoDescricao"` //Situação da identidade digital
DataValidade time.Time `json:"dataValidade"` //Data de validade do cartão
}
type PerfilAtivo ¶
type PerfilAtivo struct {
IDPerfil int `json:"idPerfil"` //ID do perfil
NomePerfil string `json:"nomePerfil"` //Nome do perfil
TipoPerfil string `json:"tipoPerfil"` //Tipo do perfil
NomeTipoPerfil string `json:"nomeTipoPerfil"` //Nome do tipo do perfil
Selecionado bool `json:"selecionado"` //Se o perfil está selecionado
}
type Perfis ¶
type Perfis struct {
IDPerfil int `json:"idPerfil"` //ID do perfil
NomePerfil string `json:"nomePerfil"` //Nome do perfil
TipoPerfil string `json:"tipoPerfil"` //Tipo do perfil
NomeTipoPerfil string `json:"nomeTipoPerfil"` //Nome do tipo do perfil
Selecionado bool `json:"selecionado"` //Se o perfil está selecionado
}