Sha256: f72665344db1bfa206cde713a1296af9dde1f0681d441178dcfcd16e4dba8b83
Contents?: true
Size: 1.9 KB
Versions: 1
Compression:
Stored size: 1.9 KB
Contents
require 'active_support' require "plyom_user/version" require "httparty" require "json" module PlyomUser def self.included(base) base.extend ClassMethods end module ClassMethods class_attribute :id, :name, :email, :username, :password, :password_confirmation, :password_digest, :status, :token, :created_at, :updated_at def initialize(params={}) params.each { |var, val| public_send("#{var}=", val) } end def self.all list = [] response = action_by("read") objs = JSON.parse(response.body) objs.each { |obj| list << self.new(obj) } list end def self.find(id) response = action_by("read", id: id) obj = JSON.parse(response.body) self.new(obj) end def save param_names = ["name", "email", "username", "password", "password_confirmation", "status"] data = filter_params(param_names) if data.length > 0 paramters = { user: data } paramters.update({ id: @id }) if @id.to_i > 0 action = @id.to_i > 0 ? "update" : "add" response = UserPlyom.action_by(action, paramters) end end def remove UserPlyom.action_by("del", id: @id) end private def filter_params(names=[]) params = {} self.instance_variables.each do |var| var_name = var.to_s.delete "@" var_value = self.instance_variable_get var params.update({var_name => var_value}) if names.include?(var_name) end params end def self.action_by(action, params={}) case action when "read" HTTParty.get("#{uri}/#{params[:id]}") when "add" HTTParty.post("#{uri}", query: params) when "del" HTTParty.delete("#{uri}/#{params[:id]}") when "update" HTTParty.patch("#{uri}/#{params[:id]}", query: params) if params.size > 1 HTTParty.put("#{uri}/#{params[:id]}", query: params) if params.size == 1 end end def self.uri host = ENV["plyom_user_host"] path = "/api/users" host + path end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
plyom_user-0.0.5 | lib/plyom_user.rb |