Class: Freshdesk::Api::Client::User

Inherits:
Object
  • Object
show all
Defined in:
lib/freshdesk/api/client/user.rb

Constant Summary collapse

USERS =
"contacts".freeze
AGENTS =
"agents".freeze

Instance Method Summary collapse

Constructor Details

#initialize(base_url, api_key) ⇒ User

Initialize with your freshdesk account url and api key.



9
10
11
# File 'lib/freshdesk/api/client/user.rb', line 9

def initialize base_url, api_key
	@connection = Freshdesk::Api::Client::Request.new base_url, api_key
end

Instance Method Details

#create_user(payload) ⇒ Object

Create an user with payload. Please refer freshdesk.com/api#user



14
15
16
# File 'lib/freshdesk/api/client/user.rb', line 14

def create_user payload
	Freshdesk::Api::Client.convert_to_hash( @connection.post USERS, payload )
end

#delete_agent(id) ⇒ Object

Delete agent by its id.



66
67
68
69
70
71
72
# File 'lib/freshdesk/api/client/user.rb', line 66

def delete_agent id
	begin
		( @connection.delete AGENTS, id ).code
	rescue Freshdesk::Api::ServerError
		200
	end
end

#delete_user(id) ⇒ Object

Delete user by its id.



59
60
61
62
63
# File 'lib/freshdesk/api/client/user.rb', line 59

def delete_user id
	Freshdesk::Api::Client.delete_status_wrapper do
		( @connection.delete USERS, id ).code
	end
end

#get_agent_by_email(email) ⇒ Object

Get agent by passing an email.



39
40
41
# File 'lib/freshdesk/api/client/user.rb', line 39

def get_agent_by_email email
	Freshdesk::Api::Client.convert_to_hash( @connection.get AGENTS, nil, "query="+URI.encode("email is #{email}") )
end

#get_agent_by_id(id) ⇒ Object

Get agent by passing a valid agent id.



34
35
36
# File 'lib/freshdesk/api/client/user.rb', line 34

def get_agent_by_id id
	Freshdesk::Api::Client.convert_to_hash( @connection.get AGENTS, id)
end

#get_agent_or_user_by_email(email) ⇒ Object

Get a user or an agent by simply passing the email.



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/freshdesk/api/client/user.rb', line 44

def get_agent_or_user_by_email email
	user = get_user_by_email email
	unless user.nil? or user.empty?
		{ type: :user, response: user[0] }
	else
		agent = get_agent_by_email email
		unless agent.nil? or agent.empty?
			{ type: :agent, response: agent[0] }
		else
			[]
		end
	end
end

#get_user_by_email(email) ⇒ Object

Get user by passing an email.



24
25
26
# File 'lib/freshdesk/api/client/user.rb', line 24

def get_user_by_email email
	Freshdesk::Api::Client.convert_to_hash( @connection.get USERS, nil, "query="+URI.encode("email is #{email}") )
end

#get_user_by_id(id) ⇒ Object

Get user by passing a valid user id.



29
30
31
# File 'lib/freshdesk/api/client/user.rb', line 29

def get_user_by_id id
	Freshdesk::Api::Client.convert_to_hash( @connection.get USERS, id )
end

#list_agentsObject

List all agents.



80
81
82
# File 'lib/freshdesk/api/client/user.rb', line 80

def list_agents
	Freshdesk::Api::Client.convert_to_hash( @connection.get AGENTS )
end

#list_usersObject

List all users.



75
76
77
# File 'lib/freshdesk/api/client/user.rb', line 75

def list_users
	Freshdesk::Api::Client.convert_to_hash( @connection.get USERS )
end

#update_user(id, payload) ⇒ Object

Update an user by passing its id and payload. Please refer freshdesk.com/api#user



19
20
21
# File 'lib/freshdesk/api/client/user.rb', line 19

def update_user id, payload
	(@connection.put USERS, id, payload).code
end