Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TECH: Generisches Hitobito Log #1840

Closed
7 tasks done
mtnstar opened this issue Sep 15, 2022 · 0 comments · Fixed by #1884
Closed
7 tasks done

TECH: Generisches Hitobito Log #1840

mtnstar opened this issue Sep 15, 2022 · 0 comments · Fixed by #1884

Comments

@mtnstar
Copy link
Contributor

mtnstar commented Sep 15, 2022

Für applikationsinternes Logging wie Ausführung von z.B. Webhook Runs oder EBICS Importe soll ein neues Log erstellt werden:

  • Log kann unter Einstellungen > Hitobito Log eingesehen werden
  • Zugriff darauf haben nur Personen mit :admin permission
  • Es wird vorerst nur eine Liste (:index) angezeigt, kein :show
  • Die Liste kann nach Kategorie gefiltert werden (z.B. via Tab pro Kategorie)
  • Sortiert wird nach timestamps (updated_at, created_at)
  • message feld mit Zeilenumbrüchen
  • Daten können idealerweise nach Datum (created_at, updated_at) sowie kind gefiltert werden
  • Pagination
  • Helper um Logeintrag zu erstellen (z.B. Hitobito.logger, logger.info, ggf. inspiriert von Rails Logger)

Tech-Spec

Neues model HitobitoLog:

  • id, primary key, int
  • timestamps
  • category, int, enum: [:webhook, :ebics, :mail, ...], null: false
  • kind, int, enum: [:info, :error, :debug], null: false, index: true, default: :info
  • message, text, null: false
  • subject_id, in, null: true, subject id, (z.B. person_id, message id, ...)
  • subject_type, string, (z.B. Person, PaymentProviderConfig, Message, ...)
  • has_one: :subject, polymorphic

Erstellen eines Log-Eintrags könnte dann in etwa so aussehen:

logger = Hitobito.logger.new
logger.info(:webhook, 'Donman API Person: Updated person attributes ...', subject: person)

ToDo

  • Erstellen DB Migration und Model
  • Crud Index Table inkl. Permission Check
    • Filterbar nach Datum/Zeit
    • Paginierung
    • Tab pro verfügbare Kategorie
  • Erstellen Helper um Logeinträge zu erstellen
  • ChangeLog entry
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants