Git Product home page Git Product logo

nifty_services's Issues

Invalid user should respond with 422 instead of 404

As I see here, it should be an unprocessable_entity error instead of not_found, because it is a create action and doesn't make sense to check if user is not found to create it.

https://github.com/fidelisrafael/nifty_services#alien-invalid-user-

You must have the following keys setup up in your locales files:

 nifty_services:
   users:
     not_found: "Invalid or not found user"
     ip_temporarily_blocked: "This IP is temporarily blocked from creating records"
   # note: posts is the key return in `record_error_key` service method
   posts:
      user_cant_create: "User cant create this record"

๐Ÿ‘ฝ Invalid user

If you try to create a post for a invalid user, such as:

# PostCreateService.new(user, options)
service = PostCreateService.new(nil, options)
service.execute

service.success? # false
service.response_status # :not_found
service.response_status_code # 404
service.errors # ["Invalid or not found user"]

Move this README into Wiki Pages

Hi Fidelis,

I spent some time reading all documentation and I think it is confuse sometimes, because there is too much information on the same page and I need to keep scrolling to find something I have read.

What do you think to move everything to Wiki pages and just let the summary on README?

WHITELIST_ATTRIBUTES could be Class Method

I was thinking that constant WHITELIST_ATTRIBUTES could be a Class Method like record_type
For example, Instead of:

WHITELIST_ATTRIBUTES = [:title, :content]

def record_allowed_attributes
   WHITELIST_ATTRIBUTES
  end

Could be:

whitelist_attributes :title, :content

What do you think?

Generic response methods for services

Should you create this helper method in a generic helper which could be accessed from anywhere?

def generic_response_for_service(service, success_response)
    default_response = {
      status: service.response_status,
      status_code: service.response_status_code,
      success: service.success?
    }

    if service.success?
      response = success_response
    else
      response = {
        error: true,
        errors: service.errors
      }
    end

    default_response.merge(response)
  end

I like the idea of have this method in BaseController, so I can use from every controller by ihneritance, what do you think?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.