cotacao

package
v0.0.0-...-4eee9bc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrCotaçãoNãoEncontrada = errors.New("cotação não encontrada")
	ErrRepositórioInválido  = errors.New("repositório inválido")
	ErrProvedorInválido     = errors.New("provedor inválido")
)

Erros

View Source
var (
	ErrFalhaDownload      = errors.New("falha no download")
	ErrAtivoNãoEncontrado = errors.New("ativo não encontrado")

	ErrDataInválidaFn = func(dia string) error { return fmt.Errorf("data com formato inválido: %s", dia) }
)

Erros

Functions

func AtualizarTickers

func AtualizarTickers(db *sqlx.DB) error

func GetTickerPrefix

func GetTickerPrefix(db *sqlx.DB, cnpj string) (string, error)

GetTickerPrefix retorna o prefixo do código das ações a partir do CNPJ

Types

type B3

type B3 struct {
	// contains filtered or unexported fields
}

B3 implementa RepositórioImportaçãoAtivo. Busca a cotação de ativos no site da B3.

func NovoB3

func NovoB3(dirDados string) *B3

func (*B3) Importar

func (b *B3) Importar(ctx context.Context, dia rapina.Data) <-chan Resultado

Importar baixa o arquivo de cotações de todas as empresas de um determinado dia do site da B3.

type EmissorData

type EmissorData struct {
	Ticker string
	Nome   string
	CNPJ   string
}

type Importar

type Importar interface {
	Importar(ctx context.Context, dia rapina.Data) <-chan Resultado
}

type Resultado

type Resultado struct {
	Ativo *rapina.Cotação
	Error error
}

type Serviço

type Serviço struct {
	// contains filtered or unexported fields
}

Serviço é um serviço que implementa Importação e busca cotações de um Ativo em vários repositórios (API e BD).

func NovoServiço

func NovoServiço(db *sqlx.DB, dirDados string) (*Serviço, error)

func (*Serviço) Cotação

func (svc *Serviço) Cotação(empresa rapina.Empresa, dia rapina.Data) ([]*rapina.Cotação, error)

Cotação busca a cotação de uma empresa em vários repositórios num determinado "dia", retornando o primeiro valor encontado ou o erro de todos os repositórios. Caso a cotação seja encontrada via API, ela será armazenada no bando de dados para agilizar a próxima leitura do mesmo código, na mesma data.

type Sqlite

type Sqlite struct {
	// contains filtered or unexported fields
}

func NovoSqlite

func NovoSqlite(db *sqlx.DB) (*Sqlite, error)

func (*Sqlite) LerCotações

func (s *Sqlite) LerCotações(ctx context.Context, código string, dia rapina.Data) ([]*rapina.Cotação, error)

func (*Sqlite) SalvarCotações

func (s *Sqlite) SalvarCotações(ctx context.Context, ativos []*rapina.Cotação) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL