Skip to content

nvt-ak/ibrain-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors