hackware/hawese-core

Code shared across Hawese projects.

0.2.1 2023-09-25 13:39 UTC

This package is not auto-updated.

Last update: 2024-11-19 03:36:03 UTC


README

Overview

Code shared among Hackware Web Services projects.

Main goals

  • Standardize output of JSON based HTTP responses.
  • Provide lightweight base class for table based models.
  • Centralize common helpers.

Features

  • As consumer I can get JSON based exceptions (instead of HTML based exceptions) out of the box, so that I'm able to process it with a JSON based consumer.
  • As consumer I can get a pager with customizable limit on every collection of objects out of the box, so that I'm able to consult massive amounts of data with ease.
  • As consumer I can sort every collection of objects in ascending or descending order so that I'm able to work with that functionality out of the box.

Sorry, I owe you a better description for this last 2:

  • As programmer I can create a table based model with ease.
  • User model, password and passwordless (token) authentication.

Run it

Requirements

As it's a Laravel/Lumen 5.8+ package, your server must meet the following requirements:

  • PHP >= 7.1.3
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Composer

Installation

composer require hackware/hawese-core

Error codes

  1. ModelValidationException: Failed model attribute validation.
  2. UnknownForeignObjectException: Can't find the foreign relationship in model::$foreign_keys.
  3. ModelObjectNotFoundException: A model object could not be found based on a key and a value.
  4. WrongCredentialsException: Wrong login password or secret.
  5. RuntimeException: Too many failed requests.
  6. RuntimeException: Unacceptable origin url or HTTP_REFERER, must listed on cors.default_profile.allow_origins config.

Copyright and licensing

Copyright 2019 Hackware SpA.

This project is released under the MIT License terms. You can sublicense this work. I will greatly appreaciate your contributions back. Releasing your creative works under free licenses makes the world a little better.