0.0
No release in over a year
Its Core is an sso authen gem for Ruby on Rails.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Project Readme

Ibrain::Core

This is core plugin for rails api project

Usage

Please remove puma gem from your project before add this gem

Installation

Add this line to your application's Gemfile:

gem 'ibrain-core'

And then execute:

$ bundle

Or install it yourself as:

$ gem install ibrain-core

Please install plugin after install this gem

$ bundle exec rails generate ibrain:install

Migration

Default migration engine is ridgepole, using this command line to migrate database:

bundle exec rails ridgpole:apply

To use default migration plugin, please disable ridgepole

bundle exec rails generate ibrain::install --with-ridgepole=false

GraphQL API

If you use graphql for rails please add this option when install plugin

$ bundle exec rails generate ibrain::install --with-graphql

To generate graphql type

bundle exec rails generate ibrain:graphql:object user

To generate graphql resolver single query to get user data

bundle exec rails generate ibrain:graphql:resolver user --model=User

To generate graphql resolvers query to get users list

bundle exec rails generate ibrain:graphql:resolvers users --model=User

To generate graphql resolver, mutation with prefix folder

bundle exec rails generate ibrain:graphql:resolvers users --model=User --prefix=admin

For pagination please using aggregate body query, something like

query users($offset: Int, $limit: Int, $filter: Filter) {
	users(offset: $offset, limit: $limit, filter: $filter) {
		id
		first_name
	}

	users_aggregate(filter: $filter) {
		total_count
	}
}

To generate graphql mutation to insert, update, delete user

bundle exec rails generate ibrain:graphql:mutation insert_user --model=User

Default all operation will be rejected if you not have Authorization Token at request header, so to skip authenticate please change parent_controller at ibrain.rb

config.parent_controller = "<Your parent controller>"

then create method skip_operations at this parent_controller

class ApplicationController < BaseController::API
	def skip_operations
		%w[sign_in].include?(operation_name)
	end
end

Contributing

Contribution directions go here.

License

The gem is available as open source under the terms of the MIT License.