Class: RubyDesk::Provider
- Inherits:
-
OdeskEntity
- Object
- OdeskEntity
- RubyDesk::Provider
- Defined in:
- lib/ruby_desk/provider.rb
Overview
A provider in oDesk. <p>There is a TON of info returned here and the best way to see what this actually means is to try pulling data from a few providers and match up the fields, most of the response fields are human readable. Here is some aditional info that should help decipher this response:</p>
<p> </p> <ul> <li><dev_userid>scoopwilson</dev_userid> The odesk users id of the provider</li> <li><dev_rank_percentile>82</dev_rank_percentile> The providers rank overall on oDesk</li> <li><dev_usr_score>4.9681818181818</dev_usr_score> The providers feedback score</li>
<li><dev_profile_access>public</dev_profile_access> The status of the providers profile (public or private)</li> <li><skill> The Skill tag describes a skill that the provider has listed in their profile</li> <li><tsexam> tsexam describes a test that the provider has taken and made public.</li> <li><dev_score> dev_score describes feedback that the provider has received after a job has been completed (or just closed)</li>
<li><dev_recent_rank_percentile>80</dev_recent_rank_percentile> The providers rank on oDesk using data from the last 90 days.</li> <li><dev_active_interviews>0</dev_active_interviews> How many active interviews the provider is engaged in now.</li> <li><dev_total_hours>2526.1666666667</dev_total_hours> The providers total hours worked on oDesk.</li>
<li><experience> Describes the providers experience as listed in their profile under the Experience section</li> <li><assignment> Describes past assignements that are publicly viewable.</li>
Here’s a full list of all attributes available:
-
affiliated
-
ag_active_assignments
-
ag_adj_score
-
ag_adj_score_recent
-
ag_billed_assignments
-
ag_city
-
ag_cny_recno
-
ag_country
-
ag_country_tz
-
ag_description
-
ag_hours_lastdays
-
ag_last_date_worked
-
ag_logo
-
ag_manager_blurb
-
ag_manager_name
-
ag_member_since
-
ag_name
-
ag_portrait
-
ag_rank_percentile
-
ag_recent_hours
-
ag_summary
-
ag_teamid
-
ag_teamid_rollup
-
ag_tot_feedback
-
ag_total_developers
-
ag_total_hours
-
agency_ciphertext
-
assignments
-
assignments_count
-
candidacies
-
certification
-
ciphertext
-
competencies
-
dev_ac_agencies
-
dev_active_interviews
-
dev_adj_score
-
dev_adj_score_recent
-
dev_agency_ciphertext
-
dev_agency_ref
-
dev_availability
-
dev_bill_rate
-
dev_billed_assignments
-
dev_billed_assignments_recent
-
dev_blurb
-
dev_blurb_short
-
dev_category
-
dev_city
-
dev_country
-
dev_cur_assignments
-
dev_eng_skill
-
dev_est_availability
-
dev_expose_full_name
-
dev_full_name
-
dev_groups
-
dev_ic
-
dev_is_affiliated
-
dev_is_ready
-
dev_last_activity
-
dev_last_worked
-
dev_location
-
dev_member_since
-
dev_pay_agency_rate
-
dev_pay_rate
-
dev_portfolio_items_count
-
dev_portrait
-
dev_profile_title
-
dev_rank_percentile
-
dev_recent_hours
-
dev_recent_rank_percentile
-
dev_recno
-
dev_region
-
dev_scores
-
dev_short_name
-
dev_test_passed_count
-
dev_timezone
-
dev_tot_feedback
-
dev_tot_feedback_recent
-
dev_total_assignments
-
dev_total_hours
-
dev_total_hours_rounded
-
dev_ui_profile_access
-
dev_usr_score
-
dev_year_exp
-
education
-
experiences
-
favorited
-
iinitialize
-
is_odesk_ready
-
job_categories
-
oth_experiences
-
permalink
-
portfolio_items
-
profile_title_full
-
provider_profile_api
-
response_time
-
search_affiliate_providers_url
-
skills
-
trends
-
tsexams
-
tsexams_count
-
version
Constant Summary collapse
- AllCategories =
Save categories in a constant
all_categories
Class Method Summary collapse
-
.all_categories ⇒ Object
Returns all categories defined in oDesk.
-
.get_profile(connector, id, options = {}) ⇒ Object
Retrieves the profile with the given user * connector: The RubyDesk::Connector that is connected to oDesk * id: The id of the user to retrieve his profile * options: A hash of options * brief: set this to true to retrieve only a brief profile of the given user.
-
.search(connector, options = {}) ⇒ Object
Implements search with the given criteria.
Instance Method Summary collapse
Methods inherited from OdeskEntity
Constructor Details
This class inherits a constructor from RubyDesk::OdeskEntity
Class Method Details
.all_categories ⇒ Object
Returns all categories defined in oDesk. These categories are retrieved from a static text file and not updated from the web. Return value is a hash. Each key is a name of a root category. Value is an array of subcategories.
173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'lib/ruby_desk/provider.rb', line 173 def all_categories text = File.read(File.join(File.dirname(__FILE__), "..", "categories")) lines = text.split(/[\r\n]+/).map{|line| line.strip} categories = {} subcategories = nil lines.each do |line| if line[0] == ?* subcategories << line[2..-1] else categories[line] = (subcategories = []) end end return categories end |
.get_profile(connector, id, options = {}) ⇒ Object
Retrieves the profile with the given user
-
connector: The RubyDesk::Connector that is connected to oDesk
-
id: The id of the user to retrieve his profile
-
options: A hash of options
-
brief: set this to true to retrieve only a brief profile of the given user
-
267 268 269 270 271 272 |
# File 'lib/ruby_desk/provider.rb', line 267 def get_profile(connector, id, ={}) brief = .delete :brief || false json = connector.prepare_and_invoke_api_call( "profiles/v1/providers/#{id}" + (brief ? "/brief" : ""), :method=>:get) return self.new(json['profile']) end |
.search(connector, options = {}) ⇒ Object
Implements search with the given criteria. For basic search, pass a string as the second parameter For advanced search, pass a string according to the following parameters
-
q - ProfileData (ProfileData)
* Profile data is any text that appears in a provider's profile. For example if q = 'odesk' the search would return any user's with the word odesk in their profile.
-
c1 - JobCategory (First Level Job Category)
* This is the first level of job categories, there are a static number of catergories to select from and only one can be submitted at a time.
-
c2 - second_category (Second Category)
* Each level one category has a list of subcategories, again only on can be listed at a time and for a full list of what these are see our complete list of categories.
-
fb - adjusted_score (the providers adjusted score) This searches for providers who have an adjusted feedback score equal or greater (up to 5) than the number passed in this parameter (decimals are ok).
* For example fb=4.5 will return providers who have a combined feedback score of 4.5 or greater.
-
hrs - ui_total_hours (Total hours) This searches for providers who have a total number of hours equal or greater to the number passed in this parameter.
* ir(has worked within the last 6 months) This boolean parameter is used in combination with the total hours worked parameter, and searches providers who have worked within the last six months. + Yes or No are the only valid searches. Omiting this will default to 'No' = not searching recent workers.
-
min - hourly_charge_rate_min (The provider’s minimum rate they have charged in the past)
* Exludes providers with a public rate less than this amount.
-
max - hourly_charge_rate_max (The provider’s maximum rate they have charged in the past)
o Exludes provides with a public rate greater than this amount. * loc - country_region (Country Region) o Limit your searches to a specific country region: + Australasia + East Asia + Eastern Europe + Misc + North America + South Asia + Western Europe * pt - provider_type (Provider type, indipendent or affiliate) o Limit your search to indipendent or affiliate providers. * last - last_provider_activity (Date last active) o Limit your search to providers who were active after the date passed in this parameter. Dates should be formated like: 07-13-2009 * test - cmp_ref (specify a test taken) o Limit your search to providers who have passed a specific test (based on the test id), one test can be passed at a time. See the complete list of tests here. * port - total_portfolio_items (the number of portfolio items) o Limit your search to providers who have at least this many portfolio items. * rdy - is_ready (are they odesk ready) o Only return oDesk ready providers. * eng - ui_english (English skill rating) o Limit your results to providers who have at least the rating passed in the parameter. + Only the following english levels are available (no decimals): [1,2,3,4,5] * ag - Agency Ref (Agency name) o Limit your search to a specific agency. * to - titles_only (Titles Search) o Search the provider profile title text only. * g - group (group members) o Limit your search to a specific group. See our list of available groups here. * Page(offset;count) * sort($field_name1;$field_name2;..$field_nameN;AD...A)
Notes on Pagination
* If $page is ommited, 0;SEARCH_PROVIDER_DEFAULT_PAGE_SIZE is assumed
* $count < SEARCH_PROVIDER_MAX_PAGE_SIZE
Notes on Sorting
* Listing all fields on which to sort separated by a semi-colon with last value in the list a "direction vector" (A(Ascending) or D(Descending)).
-
If the number of fields is bigger/smaller than number of chars in the “directions vector” then the application will return a “400 Bad request” error.
-
sort using the field_names
245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/ruby_desk/provider.rb', line 245 def search(connector, ={}) if .respond_to? :to_str return search(connector, :q=>.to_str) end json = connector.prepare_and_invoke_api_call( 'profiles/v1/search/providers', :method=>:get, :auth=>false, :sign=>false, :params=>) providers = [] if json['providers']['provider'] [json['providers']['provider']].flatten.each do |provider| providers << self.new(provider) end end return providers end |
Instance Method Details
#iinitialize(params = {}) ⇒ Object
277 278 279 280 281 282 283 284 285 |
# File 'lib/ruby_desk/provider.rb', line 277 def iinitialize(params={}) params.each do |k, v| case k.to_s when "portfolio_items" then else self.instance_variable_set("@#{k}", v) end end end |