diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index 086a5c9..0000000 --- a/docs/404.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -permalink: /404.html -layout: default ---- - - - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
diff --git a/docs/Gemfile b/docs/Gemfile index f01211b..0a1bfe6 100644 --- a/docs/Gemfile +++ b/docs/Gemfile @@ -1,33 +1,7 @@ -source "https://rubygems.org" -# Hello! This is where you manage which Jekyll version is used to run. -# When you want to use a different version, change it below, save the -# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: -# -# bundle exec jekyll serve -# -# This will help ensure the proper Jekyll version is running. -# Happy Jekylling! -gem "jekyll", "~> 4.3.3" -# This is the default theme for new Jekyll sites. You may change this to anything you like. -gem "minima", "~> 2.5" -# If you want to use GitHub Pages, remove the "gem "jekyll"" above and -# uncomment the line below. To upgrade, run `bundle update github-pages`. -# gem "github-pages", group: :jekyll_plugins -# If you have any plugins, put them here! -group :jekyll_plugins do - gem "jekyll-feed", "~> 0.12" -end +source 'https://rubygems.org' -# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. -platforms :mingw, :x64_mingw, :mswin, :jruby do - gem "tzinfo", ">= 1", "< 3" - gem "tzinfo-data" -end +gem "jekyll", "~> 4.3.3" # installed by `gem jekyll` +# gem "webrick" # required when using Ruby >= 3 and Jekyll <= 4.2.2 -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] - -# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem -# do not have a Java counterpart. -gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] +gem "just-the-docs", "0.8.2" # pinned to the current release +# gem "just-the-docs" # always download the latest release diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock new file mode 100644 index 0000000..e7f81d2 --- /dev/null +++ b/docs/Gemfile.lock @@ -0,0 +1,86 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + bigdecimal (3.1.8) + colorator (1.1.0) + concurrent-ruby (1.3.1) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + eventmachine (1.2.7) + ffi (1.17.0-x64-mingw-ucrt) + forwardable-extended (2.6.0) + google-protobuf (4.27.0-x64-mingw-ucrt) + bigdecimal + rake (>= 13) + http_parser.rb (0.8.0) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + jekyll (4.3.3) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 1.0) + jekyll-sass-converter (>= 2.0, < 4.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.3, >= 2.3.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (>= 0.3.6, < 0.5) + pathutil (~> 0.9) + rouge (>= 3.0, < 5.0) + safe_yaml (~> 1.0) + terminal-table (>= 1.8, < 4.0) + webrick (~> 1.7) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-sass-converter (3.0.0) + sass-embedded (~> 1.54) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + just-the-docs (0.8.2) + jekyll (>= 3.8.5) + jekyll-include-cache + jekyll-seo-tag (>= 2.0) + rake (>= 12.3.1) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.4.0) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.5) + rake (13.2.1) + rb-fsevent (0.11.2) + rb-inotify (0.11.1) + ffi (~> 1.0) + rexml (3.2.8) + strscan (>= 3.0.9) + rouge (4.2.1) + safe_yaml (1.0.5) + sass-embedded (1.77.4-x64-mingw-ucrt) + google-protobuf (>= 3.25, < 5.0) + strscan (3.1.0) + terminal-table (3.0.2) + unicode-display_width (>= 1.1.1, < 3) + unicode-display_width (2.5.0) + webrick (1.8.1) + +PLATFORMS + x64-mingw-ucrt + +DEPENDENCIES + jekyll (~> 4.3.3) + just-the-docs (= 0.8.2) + +BUNDLED WITH + 2.5.11 diff --git a/docs/_config.yml b/docs/_config.yml index 12296b8..4450810 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,51 +1,24 @@ -# Welcome to Jekyll! -# -# This config file is meant for settings that affect your whole blog, values -# which you are expected to set up once and rarely edit after that. If you find -# yourself editing this file very often, consider using Jekyll's data files -# feature for the data you need to update frequently. -# -# For technical reasons, this file is *NOT* reloaded automatically when you use -# 'bundle exec jekyll serve'. If you change this file, please restart the server process. -# -# If you need help with YAML syntax, here are some quick references for you: -# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml -# https://learnxinyminutes.com/docs/yaml/ -# -# Site settings -# These are used to personalize your new site. If you look in the HTML files, -# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. -# You can create any custom variable you would like, and they will be accessible -# in the templates via {{ site.myvariable }}. - title: Slothful CRUD -description: Slothful CRUD is a library designed to streamline the creation of CRUD endpoints effortlessly. By implementing the necessary interfaces in domain classes, you can quickly register the library and generate RESTful endpoints. Simplify your API development with Slothful CRUD. -email: damian.fyda@gmail.com -baseurl: "" # the subpath of your site, e.g. /blog -url: "https://slothful.dev" # the base hostname & protocol for your site, e.g. http://example.com -github_username: dfyda +description: A library designed to streamline the creation of CRUD endpoints effortlessly. Implementing the necessary interfaces in domain classes allows you to quickly register the library and generate RESTful endpoints. +baseurl: "" +url: "https://slothful.dev" +repository: dfyda/slothful-crud +theme: just-the-docs + +#logo: "/assets/slothful-api.jpg" + +aux_links: + Repository: https://github.com/dfyda/slothful-crud + +footer_content: "Copyright © 2024 Damian Fyda. Distributed by an MIT license." + +color_scheme: dark -# Build settings -theme: minima -plugins: - - jekyll-feed +# Back to top link +back_to_top: true +back_to_top_text: "Back to top" -# Exclude from processing. -# The following items will not be processed, by default. -# Any item listed under the `exclude:` key here will be automatically added to -# the internal "default list". -# -# Excluded items can be processed by explicitly listing the directories or -# their entries' file path in the `include:` list. -# -# exclude: -# - .sass-cache/ -# - .jekyll-cache/ -# - gemfiles/ -# - Gemfile -# - Gemfile.lock -# - node_modules/ -# - vendor/bundle/ -# - vendor/cache/ -# - vendor/gems/ -# - vendor/ruby/ +# External navigation links +nav_external_links: + - title: Slothful CRUD on GitHub + url: https://github.com/dfyda/slothful-crud \ No newline at end of file diff --git a/docs/_posts/2024-06-02-welcome-to-jekyll.markdown b/docs/_posts/2024-06-02-welcome-to-jekyll.markdown deleted file mode 100644 index e2284e3..0000000 --- a/docs/_posts/2024-06-02-welcome-to-jekyll.markdown +++ /dev/null @@ -1,29 +0,0 @@ ---- -layout: post -title: "Welcome to Jekyll!" -date: 2024-06-02 21:34:38 +0200 -categories: jekyll update ---- -You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated. - -Jekyll requires blog post files to be named according to the following format: - -`YEAR-MONTH-DAY-title.MARKUP` - -Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works. - -Jekyll also offers powerful support for code snippets: - -{% highlight ruby %} -def print_hi(name) - puts "Hi, #{name}" -end -print_hi('Tom') -#=> prints 'Hi, Tom' to STDOUT. -{% endhighlight %} - -Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk]. - -[jekyll-docs]: https://jekyllrb.com/docs/home -[jekyll-gh]: https://github.com/jekyll/jekyll -[jekyll-talk]: https://talk.jekyllrb.com/ diff --git a/docs/about.markdown b/docs/about.markdown deleted file mode 100644 index 8b4e0b2..0000000 --- a/docs/about.markdown +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: page -title: About -permalink: /about/ ---- - -This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/) - -You can find the source code for Minima at GitHub: -[jekyll][jekyll-organization] / -[minima](https://github.com/jekyll/minima) - -You can find the source code for Jekyll at GitHub: -[jekyll][jekyll-organization] / -[jekyll](https://github.com/jekyll/jekyll) - - -[jekyll-organization]: https://github.com/jekyll diff --git a/docs/assets/slothful-api-doc.jpg b/docs/assets/slothful-api-doc.jpg new file mode 100644 index 0000000..3e7f1c7 Binary files /dev/null and b/docs/assets/slothful-api-doc.jpg differ diff --git a/docs/index.markdown b/docs/index.markdown deleted file mode 100644 index 0671507..0000000 --- a/docs/index.markdown +++ /dev/null @@ -1,6 +0,0 @@ ---- -# Feel free to add content and custom Front Matter to this file. -# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults - -layout: home ---- diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..85b72bb --- /dev/null +++ b/docs/index.md @@ -0,0 +1,55 @@ +--- +title: Home +layout: home +--- + +
+ slothful-crud logo +
+ +# Relax and Generate CRUD Endpoints +{: .fs-9 } + +Slothful CRUD is a library designed to streamline the creation of CRUD endpoints effortlessly. By implementing the necessary interfaces in domain classes, you can quickly register the library and generate RESTful endpoints. Simplify your API development with Slothful CRUD. +{: .fs-6 .fw-300 } + +--- + +## Getting Started + +Follow these steps to integrate Slothful CRUD into your project: + +1. **Configure Your Domain Classes:** + + - Create domain classes representing your data entities. + - Implement the appropriate interfaces for CRUD operations. + +2. **Register the Library:** + + - Integrate Slothful API by registering it in your application. + +3. **Run Your Application:** + + - Start your application to automatically generate RESTful endpoints based on your domain classes. + +## Configuration +The base configuration class that defines shared settings for all other configuration classes: + +- **ExposeAllNestedProperties** (`bool`): Set to `true` to expose all nested properties via the API. Useful for debugging or gaining granular control over nested data. +- **IsAuthorizationEnable** (`bool`): Determines whether authorization checks are enabled. If set to `true`, the policies listed in `PolicyNames` are applied. +- **PolicyNames** (`string[]`): An array of policy names to apply for authorization. + +### `EndpointConfiguration` (inherits `Configuration`) +Defines properties specific to API endpoints: + +- **IsEnable** (`bool`): Determines if the endpoint is enabled. + +### `EntityConfiguration` (inherits `Configuration`) +Provides settings specific to entity management: + +- **SortProperty** (`string`): Specifies the property name used to sort entities. +- **FilterProperty** (`string`): Identifies the property name used to filter entities. +- **KeyProperty** (`string`): Defines the primary key property name for identifying entities. +- **KeyPropertyType** (`Type`): Indicates the type of the primary key property (e.g., `int`, `string`). +- **UpdateMethod** (`string`): Specifies the method used to update entities. +- **HasValidation** (`bool`): Enables or disables validation for entities to ensure compliance with business rules.