elmuemasz

package module
v0.0.0-...-81c0485 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2020 License: MIT Imports: 14 Imported by: 0

README

ELMŰ-ÉMÁSZ

(Unofficial) ELMŰ-ÉMÁSZ API client for Go

Download it using

go get github.com/prozsolt/elmuemasz

Usage

package main

import (
  "time"

  "github.com/prozsolt/elmuemasz"
)

func main() {
  // Authentication
  user := elmuemasz.User{
    Username: "username",
    Password: "password",
  }
  ts, err := elmuemasz.NewTokenSource(user)
  if err != nil {
    // handle error
  }
  client := oauth2.NewClient(context.Background(), ts)
  srv := elmuemasz.NewService(client)

  // Download the last 3 months of Invoices
  filter := elmuemasz.SzamlakFilter{
    SzamlaKelteTol: time.Now().AddDate(0, -3, 0),
    SzamlaKelteIg:  time.Now(),
  }
  szamlak, err := srv.Szamlak(filter)
  if err != nil {
    // handle error
  }
  for _, szamla := range szamlak {
    err = srv.DownloadPDF(szamla, "destinationDir/"+szamla.Szamlaszam+".pdf")
    if err != nil {
      // handle error
    }
  }

  // Report utility meter reading (currently untested)
  felhelyek, err := srv.Felhelyek()
  if err != nil {
    // handle error
  }
  merodiktalasok, err := srv.MeroDiktalasok(felhelyek[0])
  if err != nil {
    // handle error
  }
  payload := elmuemasz.MeroDiktalasPayloadFromMeroDiktalas(merodiktalasok[0], time.Now(), 1337)
  _, err := srv.MeroDiktalasPost(payload)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewTokenSource

func NewTokenSource(user User) (oauth2.TokenSource, error)

NewTokenSource creates a new oauth2 tken source from user credetials

Types

type ESzamla

type ESzamla struct {
	Metadata           Metadata `json:"__metadata"`
	Vevo               string   `json:"Vevo"`
	VevoNev            string   `json:"VevoNev"`
	FizetoNev          string   `json:"FizetoNev"`
	SzamlaMod          string   `json:"SzamlaMod"`
	SzamlaKezbesito    string   `json:"SzamlaKezbesito"`
	ErvenyKezdet       string   `json:"ErvenyKezdet"`
	BankszamlaSzam     string   `json:"BankszamlaSzam"`
	BankszamlaNev      string   `json:"BankszamlaNev"`
	EszamlaEmail       bool     `json:"EszamlaEmail"`
	Jatek              bool     `json:"Jatek"`
	TajekoztatoElfogad bool     `json:"TajekoztatoElfogad"`
	ReklamElfogad      bool     `json:"ReklamElfogad"`
	SzamlaModKod       string   `json:"SzamlaModKod"`
}

type Error

type Error struct {
	Err struct {
		Code    string `json:"code"`
		Message struct {
			Lang  string `json:"lang"`
			Value string `json:"value"`
		} `json:"message"`
		Innererror struct {
			Application struct {
				ComponentID      string `json:"component_id"`
				ServiceNamespace string `json:"service_namespace"`
				ServiceID        string `json:"service_id"`
				ServiceVersion   string `json:"service_version"`
			} `json:"application"`
			Transactionid   string `json:"transactionid"`
			Timestamp       string `json:"timestamp"`
			ErrorResolution struct {
				SAPTransaction string `json:"SAP_Transaction"`
				SAPNote        string `json:"SAP_Note"`
			} `json:"Error_Resolution"`
			Errordetails []struct {
				Code        string `json:"code"`
				Message     string `json:"message"`
				Propertyref string `json:"propertyref"`
				Severity    string `json:"severity"`
				Target      string `json:"target"`
			} `json:"errordetails"`
		} `json:"innererror"`
	} `json:"error"`
}

Error represents any error received from the endpoint

func (Error) Error

func (e Error) Error() string

type Felhely

type Felhely struct {
	Metadata Metadata `json:"__metadata"`
	ID       string   `json:"Id"`
	Vevo     string   `json:"Vevo"`
	Cim      string   `json:"Cim"`
}

type MeroDiktalas

type MeroDiktalas struct {
	Metadata             Metadata    `json:"__metadata"`
	ArAfaCheck           bool        `json:"ArAfaCheck"`
	ArAfaDiktKezdet      interface{} `json:"ArAfaDiktKezdet"`
	ArAfaDiktVege        interface{} `json:"ArAfaDiktVege"`
	Megerosites          bool        `json:"Megerosites"`
	MinAllas             string      `json:"MinAllas"`
	MaxAllas             string      `json:"MaxAllas"`
	DiktalasPeriodus     string      `json:"DiktalasPeriodus"`
	LeolvasasOka         string      `json:"LeolvasasOka"`
	AktAllas             string      `json:"AktAllas"`
	UtolsoLeolvasasDatum string      `json:"UtolsoLeolvasasDatum"`
	Allas                string      `json:"Allas"`
	MertJellemzo         string      `json:"MertJellemzo"`
	MertJellemzoLeiras   string      `json:"MertJellemzoLeiras"`
	Szamjegyszam         string      `json:"Szamjegyszam"`
	LeolvasasDatum       string      `json:"LeolvasasDatum"`
	DiktEnd              string      `json:"DiktEnd"`
	DiktStart            string      `json:"DiktStart"`
	Felhely              string      `json:"Felhely"`
	Vevo                 string      `json:"Vevo"`
	MeroAzonosito        string      `json:"MeroAzonosito"`
	Szamlalo             string      `json:"Szamlalo"`
	Mertekegyseg         string      `json:"Mertekegyseg"`
	LeolvBizAzon         string      `json:"LeolvBizAzon"`
	Rogzites             Rogzites    `json:"Rogzites"`
}

type MeroDiktalasPayload

type MeroDiktalasPayload struct {
	Vevo           string            `json:"Vevo"`
	Felhely        string            `json:"Felhely"`
	LeolvasasDatum string            `json:"LeolvasasDatum"`
	Megerosites    bool              `json:"Megerosites"`
	ArAfaCheck     bool              `json:"ArAfaCheck"`
	Rogzites       []RogzitesPayload `json:"Rogzites"`
}

func MeroDiktalasPayloadFromMeroDiktalas

func MeroDiktalasPayloadFromMeroDiktalas(md MeroDiktalas, ld time.Time, aa int) MeroDiktalasPayload

type MeroRogzites

type MeroRogzites struct {
	Metadata      Metadata `json:"__metadata"`
	LeolvasasOka  string   `json:"LeolvasasOka"`
	AktAllas      string   `json:"AktAllas"`
	MeroAzonosito string   `json:"MeroAzonosito"`
	Szamlalo      string   `json:"Szamlalo"`
}

type Meroallas

type Meroallas struct {
	Metadata             Metadata `json:"__metadata"`
	LeolvasasOkaLeiras   string   `json:"LeolvasasOkaLeiras"`
	LeolvasasModja       string   `json:"LeolvasasModja"`
	Fogyasztas           string   `json:"Fogyasztas"`
	Statusz              string   `json:"Statusz"`
	LeolvasasOka         string   `json:"LeolvasasOka"`
	Allas                string   `json:"Allas"`
	MertJellemzoLeiras   string   `json:"MertJellemzoLeiras"`
	MertJellemzo         string   `json:"MertJellemzo"`
	Gyariszam            string   `json:"Gyariszam"`
	LeolvasasDatum       string   `json:"LeolvasasDatum"`
	Felhely              string   `json:"Felhely"`
	Vevo                 string   `json:"Vevo"`
	UtolsoLeolvasasDatum string   `json:"UtolsoLeolvasasDatum"`
	UtolsoAllas          string   `json:"UtolsoAllas"`
	Szamlalo             string   `json:"Szamlalo"`
}

type Metadata

type Metadata struct {
	ID   string `json:"id"`
	URI  string `json:"uri"`
	Type string `json:"type"`
}

type Rogzites

type Rogzites struct {
	Results []MeroRogzites `json:"results"`
}

type RogzitesPayload

type RogzitesPayload struct {
	MeroAzonosito string `json:"MeroAzonosito"`
	Szamlalo      string `json:"Szamlalo"`
	AktAllas      string `json:"AktAllas"`
	LeolvasasOka  string `json:"LeolvasasOka"`
}

type Service

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

func NewService

func NewService(client *http.Client) Service

func (Service) DownloadPDF

func (s Service) DownloadPDF(szamla Szamla, filename string) error

func (Service) DownloadXML

func (s Service) DownloadXML(szamla Szamla, filename string) error

func (Service) ESzamlak

func (s Service) ESzamlak() ([]ESzamla, error)

func (Service) Felhelyek

func (s Service) Felhelyek() ([]Felhely, error)

func (Service) MeroDiktalasPost

func (s Service) MeroDiktalasPost(payload MeroDiktalasPayload) (MeroDiktalas, error)

func (Service) MeroDiktalasok

func (s Service) MeroDiktalasok(felhely Felhely) ([]MeroDiktalas, error)

func (Service) Meroallasok

func (s Service) Meroallasok(felhely Felhely) ([]Meroallas, error)

func (Service) Szamlak

func (s Service) Szamlak(filter SzamlakFilter) ([]Szamla, error)

func (Service) Vevok

func (s Service) Vevok() ([]Vevo, error)

type Szamla

type Szamla struct {
	Metadata              Metadata `json:"__metadata"`
	EsedekessegTol        string   `json:"EsedekessegTol"`
	EsedekessegIg         string   `json:"EsedekessegIg"`
	SzamlaKelteTol        string   `json:"SzamlaKelteTol"`
	SzamlaKelteIg         string   `json:"SzamlaKelteIg"`
	Vevo                  string   `json:"Vevo"`
	Felhely               string   `json:"Felhely"`
	Szamlaszam            string   `json:"Szamlaszam"`
	Utalvanyszam          string   `json:"Utalvanyszam"`
	Megnevezes            string   `json:"Megnevezes"`
	SzamlaKelte           string   `json:"SzamlaKelte"`
	FizetesiHatarido      string   `json:"FizetesiHatarido"`
	TeljesitesDatum       string   `json:"TeljesitesDatum"`
	KiegyenlitesDatum     string   `json:"KiegyenlitesDatum"`
	NettoAr               string   `json:"NettoAr"`
	AfaErtek              string   `json:"AfaErtek"`
	Osszeg                string   `json:"Osszeg"`
	Egyenleg              string   `json:"Egyenleg"`
	Penznem               string   `json:"Penznem"`
	Tipus                 string   `json:"Tipus"`
	Statusz               string   `json:"Statusz"`
	StronoHivSzam         string   `json:"StronoHivSzam"`
	PostazasiIranyitoszam string   `json:"PostazasiIranyitoszam"`
	PostazasiTelepules    string   `json:"PostazasiTelepules"`
	PostazasiKozterulet   string   `json:"PostazasiKozterulet"`
	RegiRendszer          bool     `json:"RegiRendszer"`
	CsoportFelhelyCim     string   `json:"CsoportFelhelyCim"`
}

type SzamlakFilter

type SzamlakFilter struct {
	SzamlaKelteTol time.Time
	SzamlaKelteIg  time.Time
	EsedekessegTol time.Time
	EsedekessegIg  time.Time
	Vevo           string
	Felhely        string
}

func (SzamlakFilter) String

func (f SzamlakFilter) String() string

type User

type User struct {
	Username string `json:"Username"`
	Password string `json:"Password"`
}

User represents the user credentials

type Vevo

type Vevo struct {
	Metadata               Metadata `json:"__metadata"`
	EszlaCsatolva          bool     `json:"EszlaCsatolva"`
	EszlaAktiv             bool     `json:"EszlaAktiv"`
	EszlaDatum             string   `json:"EszlaDatum"`
	LetrehozasDatum        string   `json:"LetrehozasDatum"`
	Nev                    string   `json:"Nev"`
	ID                     string   `json:"Id"`
	EFelszolitas           bool     `json:"EFelszolitas"`
	DigitFizEml            bool     `json:"DigitFizEml"`
	EszlaKorabban          bool     `json:"EszlaKorabban"`
	RegFajta               string   `json:"RegFajta"`
	Adatvedelem            bool     `json:"Adatvedelem"`
	BizonylatSzama         string   `json:"BizonylatSzama"`
	DigitFizEmlModosithato bool     `json:"DigitFizEmlModosithato"`
	FelhasznaloiAzon       string   `json:"FelhasznaloiAzon"`
	FogyMeroAzon           string   `json:"FogyMeroAzon"`
	FizMod                 string   `json:"FizMod"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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