Sha256: 61aecb0d2b87375fe42154a5af34ce90287c3115e2eacbe7d13c8abbb63a18e3

Contents?: true

Size: 1.24 KB

Versions: 4

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true
module FinApps
  module REST
    class Operators < FinAppsCore::REST::Resources
      def list(params=nil)
        return super if params.nil?

        path = "#{endpoint}/#{ERB::Util.url_encode(params)}"
        super path
      end

      def show(id)
        not_blank(id, :operator_id)

        super id
      end

      def create(params, path=nil)
        not_blank(params, :params)
        super params, path
      end

      def update(id, params)
        not_blank(id, :operator_id)
        not_blank(params, :params)

        path = "#{end_point}/#{ERB::Util.url_encode(id)}"
        super params, path
      end

      def update_password(params)
        # update password for current operator, need authorization session in header
        not_blank(params, :params)
        raise FinAppsCore::InvalidArgumentsError.new 'Invalid argument: params.' unless validates params
        path = "#{end_point}/password/change"

        create params, path
      end

      def destroy(id)
        not_blank(id, :operator_id)
        super id
      end

      private

      def validates(params)
        params.key?(:password) && params[:password] && params.key?(:password_confirm) && params[:password_confirm]
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
finapps-2.2.13 lib/finapps/rest/operators.rb
finapps-2.2.12 lib/finapps/rest/operators.rb
finapps-2.2.11 lib/finapps/rest/operators.rb
finapps-2.2.10 lib/finapps/rest/operators.rb