freelancer 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. data/.gitignore +3 -0
  2. data/Gemfile +14 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +56 -0
  5. data/Rakefile +34 -0
  6. data/VERSION +1 -0
  7. data/freelancer.gemspec +299 -0
  8. data/init.rb +2 -0
  9. data/lib/freelancer.rb +59 -0
  10. data/lib/freelancer/api.rb +20 -0
  11. data/lib/freelancer/api/common.rb +58 -0
  12. data/lib/freelancer/api/employer.rb +56 -0
  13. data/lib/freelancer/api/freelancer.rb +36 -0
  14. data/lib/freelancer/api/job.rb +46 -0
  15. data/lib/freelancer/api/message.rb +89 -0
  16. data/lib/freelancer/api/notification.rb +25 -0
  17. data/lib/freelancer/api/payment.rb +123 -0
  18. data/lib/freelancer/api/profile.rb +30 -0
  19. data/lib/freelancer/api/project.rb +133 -0
  20. data/lib/freelancer/api/user.rb +86 -0
  21. data/lib/freelancer/client.rb +152 -0
  22. data/lib/freelancer/extensions/hash.rb +11 -0
  23. data/lib/freelancer/models/address.rb +46 -0
  24. data/lib/freelancer/models/balance.rb +22 -0
  25. data/lib/freelancer/models/bid.rb +41 -0
  26. data/lib/freelancer/models/config_version.rb +21 -0
  27. data/lib/freelancer/models/eligibility.rb +23 -0
  28. data/lib/freelancer/models/job.rb +33 -0
  29. data/lib/freelancer/models/job_category.rb +18 -0
  30. data/lib/freelancer/models/message.rb +32 -0
  31. data/lib/freelancer/models/milestone.rb +57 -0
  32. data/lib/freelancer/models/news.rb +15 -0
  33. data/lib/freelancer/models/notification.rb +15 -0
  34. data/lib/freelancer/models/notification_status.rb +45 -0
  35. data/lib/freelancer/models/project.rb +116 -0
  36. data/lib/freelancer/models/project_budget.rb +21 -0
  37. data/lib/freelancer/models/project_fee.rb +18 -0
  38. data/lib/freelancer/models/project_options.rb +34 -0
  39. data/lib/freelancer/models/rating.rb +21 -0
  40. data/lib/freelancer/models/review.rb +87 -0
  41. data/lib/freelancer/models/transaction.rb +39 -0
  42. data/lib/freelancer/models/user.rb +225 -0
  43. data/lib/freelancer/models/withdrawal.rb +51 -0
  44. data/lib/freelancer/models/withdrawal_fee.rb +39 -0
  45. data/lib/freelancer/support/json_mapper.rb +95 -0
  46. data/test/fixtures/common/get_config_version.json +1 -0
  47. data/test/fixtures/common/get_config_version.xml +5 -0
  48. data/test/fixtures/common/get_pending_feedback.json +1 -0
  49. data/test/fixtures/common/get_pending_feedback.xml +20 -0
  50. data/test/fixtures/common/get_terms.json +1 -0
  51. data/test/fixtures/common/get_terms.xml +4 -0
  52. data/test/fixtures/common/post_feedback.json +1 -0
  53. data/test/fixtures/common/post_feedback.xml +4 -0
  54. data/test/fixtures/common/post_reply_for_feedback.json +1 -0
  55. data/test/fixtures/common/post_reply_for_feedback.xml +4 -0
  56. data/test/fixtures/common/request_cancel_project.json +1 -0
  57. data/test/fixtures/common/request_cancel_project.xml +4 -0
  58. data/test/fixtures/common/request_withdraw_feedback.json +1 -0
  59. data/test/fixtures/common/request_withdraw_feedback.xml +4 -0
  60. data/test/fixtures/employer/choose_winner_for_project.json +1 -0
  61. data/test/fixtures/employer/choose_winner_for_project.xml +3 -0
  62. data/test/fixtures/employer/delete_draft_project.json +1 -0
  63. data/test/fixtures/employer/delete_draft_project.xml +4 -0
  64. data/test/fixtures/employer/eligible_for_trial_project.json +1 -0
  65. data/test/fixtures/employer/eligible_for_trial_project.xml +5 -0
  66. data/test/fixtures/employer/get_posted_project_list.json +1 -0
  67. data/test/fixtures/employer/get_posted_project_list.xml +38 -0
  68. data/test/fixtures/employer/invite_user_for_project.json +1 -0
  69. data/test/fixtures/employer/invite_user_for_project.xml +4 -0
  70. data/test/fixtures/employer/post_new_draft_project.json +1 -0
  71. data/test/fixtures/employer/post_new_draft_project.xml +5 -0
  72. data/test/fixtures/employer/post_new_project.json +1 -0
  73. data/test/fixtures/employer/post_new_project.xml +5 -0
  74. data/test/fixtures/employer/post_new_trial_project.json +1 -0
  75. data/test/fixtures/employer/post_new_trial_project.xml +5 -0
  76. data/test/fixtures/employer/publish_draft_project.json +1 -0
  77. data/test/fixtures/employer/publish_draft_project.xml +4 -0
  78. data/test/fixtures/employer/update_project_details.json +1 -0
  79. data/test/fixtures/employer/update_project_details.xml +4 -0
  80. data/test/fixtures/employer/upgrade_trial_project.json +1 -0
  81. data/test/fixtures/employer/upgrade_trial_project.xml +4 -0
  82. data/test/fixtures/freelancer/accept_bid_won.json +1 -0
  83. data/test/fixtures/freelancer/accept_bid_won.xml +4 -0
  84. data/test/fixtures/freelancer/get_project_list_for_placed_bids.json +1 -0
  85. data/test/fixtures/freelancer/get_project_list_for_placed_bids.xml +16 -0
  86. data/test/fixtures/freelancer/place_bid_on_project.json +1 -0
  87. data/test/fixtures/freelancer/place_bid_on_project.xml +4 -0
  88. data/test/fixtures/freelancer/retract_bid_from_project.json +1 -0
  89. data/test/fixtures/freelancer/retract_bid_from_project.xml +4 -0
  90. data/test/fixtures/job/get_category_job_list.json +1 -0
  91. data/test/fixtures/job/get_category_job_list.xml +34 -0
  92. data/test/fixtures/job/get_job_list.json +1 -0
  93. data/test/fixtures/job/get_job_list.xml +17 -0
  94. data/test/fixtures/job/get_my_job_list.json +1 -0
  95. data/test/fixtures/job/get_my_job_list.xml +11 -0
  96. data/test/fixtures/message/get_inbox_messages.json +1 -0
  97. data/test/fixtures/message/get_inbox_messages.xml +22 -0
  98. data/test/fixtures/message/get_sent_messages.json +1 -0
  99. data/test/fixtures/message/get_sent_messages.xml +22 -0
  100. data/test/fixtures/message/get_unread_count.json +1 -0
  101. data/test/fixtures/message/get_unread_count.xml +4 -0
  102. data/test/fixtures/message/load_message_thread.json +1 -0
  103. data/test/fixtures/message/load_message_thread.xml +54 -0
  104. data/test/fixtures/message/mark_message_as_read.json +1 -0
  105. data/test/fixtures/message/mark_message_as_read.xml +4 -0
  106. data/test/fixtures/message/send_message.json +1 -0
  107. data/test/fixtures/message/send_message.xml +4 -0
  108. data/test/fixtures/notification/get_news.json +1 -0
  109. data/test/fixtures/notification/get_news.xml +14 -0
  110. data/test/fixtures/notification/get_notification.json +1 -0
  111. data/test/fixtures/notification/get_notification.xml +10 -0
  112. data/test/fixtures/payment/cancel_milestone.json +1 -0
  113. data/test/fixtures/payment/cancel_milestone.xml +4 -0
  114. data/test/fixtures/payment/create_milestone_payment.json +1 -0
  115. data/test/fixtures/payment/create_milestone_payment.xml +4 -0
  116. data/test/fixtures/payment/get_account_balance_status.json +1 -0
  117. data/test/fixtures/payment/get_account_balance_status.xml +12 -0
  118. data/test/fixtures/payment/get_account_milestone_list.json +1 -0
  119. data/test/fixtures/payment/get_account_milestone_list.xml +30 -0
  120. data/test/fixtures/payment/get_account_transaction_list.json +1 -0
  121. data/test/fixtures/payment/get_account_transaction_list.xml +57 -0
  122. data/test/fixtures/payment/get_account_withdrawal_list.json +1 -0
  123. data/test/fixtures/payment/get_account_withdrawal_list.xml +42 -0
  124. data/test/fixtures/payment/get_balance.json +1 -0
  125. data/test/fixtures/payment/get_balance.xml +4 -0
  126. data/test/fixtures/payment/get_project_list_for_transfer.json +1 -0
  127. data/test/fixtures/payment/get_project_list_for_transfer.xml +52 -0
  128. data/test/fixtures/payment/get_withdrawal_fees.json +1 -0
  129. data/test/fixtures/payment/get_withdrawal_fees.xml +41 -0
  130. data/test/fixtures/payment/prepare_transfer.json +1 -0
  131. data/test/fixtures/payment/prepare_transfer.xml +4 -0
  132. data/test/fixtures/payment/release_milestone.json +1 -0
  133. data/test/fixtures/payment/release_milestone.xml +4 -0
  134. data/test/fixtures/payment/request_cancel_withdrawal.json +1 -0
  135. data/test/fixtures/payment/request_cancel_withdrawal.xml +4 -0
  136. data/test/fixtures/payment/request_release_milestone.json +1 -0
  137. data/test/fixtures/payment/request_release_milestone.xml +4 -0
  138. data/test/fixtures/payment/request_withdrawal.json +1 -0
  139. data/test/fixtures/payment/request_withdrawal.xml +6 -0
  140. data/test/fixtures/payment/transfer_money.json +1 -0
  141. data/test/fixtures/payment/transfer_money.xml +4 -0
  142. data/test/fixtures/profile/get_account_details.json +1 -0
  143. data/test/fixtures/profile/get_account_details.xml +71 -0
  144. data/test/fixtures/profile/get_profile_info.json +1 -0
  145. data/test/fixtures/profile/get_profile_info.xml +53 -0
  146. data/test/fixtures/profile/set_profile_info.json +1 -0
  147. data/test/fixtures/profile/set_profile_info.xml +4 -0
  148. data/test/fixtures/project/get_bids_details.json +1 -0
  149. data/test/fixtures/project/get_bids_details.xml +19 -0
  150. data/test/fixtures/project/get_project_budget_config.json +1 -0
  151. data/test/fixtures/project/get_project_budget_config.xml +42 -0
  152. data/test/fixtures/project/get_project_details.json +1 -0
  153. data/test/fixtures/project/get_project_details.xml +78 -0
  154. data/test/fixtures/project/get_project_fees.json +1 -0
  155. data/test/fixtures/project/get_project_fees.xml +31 -0
  156. data/test/fixtures/project/get_public_messages.json +1 -0
  157. data/test/fixtures/project/get_public_messages.xml +27 -0
  158. data/test/fixtures/project/get_sent_messages.xml +22 -0
  159. data/test/fixtures/project/get_unread_count.xml +4 -0
  160. data/test/fixtures/project/load_message_thread.xml +54 -0
  161. data/test/fixtures/project/mark_message_as_read.xml +4 -0
  162. data/test/fixtures/project/post_public_message.json +1 -0
  163. data/test/fixtures/project/post_public_message.xml +4 -0
  164. data/test/fixtures/project/search_projects.json +1 -0
  165. data/test/fixtures/project/search_projects.xml +37 -0
  166. data/test/fixtures/project/send_message.xml +4 -0
  167. data/test/fixtures/user/get_user_details.json +1 -0
  168. data/test/fixtures/user/get_user_details.xml +32 -0
  169. data/test/fixtures/user/get_user_feedback.json +1 -0
  170. data/test/fixtures/user/get_user_feedback.xml +58 -0
  171. data/test/fixtures/user/get_users_by_search.json +1 -0
  172. data/test/fixtures/user/get_users_by_search.xml +26 -0
  173. data/test/freelancer/api/common_api_test.rb +82 -0
  174. data/test/freelancer/api/employer_api_test.rb +105 -0
  175. data/test/freelancer/api/freelancer_api_test.rb +72 -0
  176. data/test/freelancer/api/job_api_test.rb +76 -0
  177. data/test/freelancer/api/message_api_test.rb +144 -0
  178. data/test/freelancer/api/notification_api_test.rb +56 -0
  179. data/test/freelancer/api/payment_api_test.rb +225 -0
  180. data/test/freelancer/api/profile_api_test.rb +54 -0
  181. data/test/freelancer/api/project_api_test.rb +229 -0
  182. data/test/freelancer/api/user_api_test.rb +153 -0
  183. data/test/freelancer/client_test.rb +5 -0
  184. data/test/freelancer/models/balance_test.rb +24 -0
  185. data/test/freelancer/models/bid_test.rb +25 -0
  186. data/test/freelancer/models/config_version.rb +14 -0
  187. data/test/freelancer/models/eligibility_test.rb +14 -0
  188. data/test/freelancer/models/job_category_test.rb +16 -0
  189. data/test/freelancer/models/job_test.rb +19 -0
  190. data/test/freelancer/models/message_test.rb +42 -0
  191. data/test/freelancer/models/milestone_test.rb +21 -0
  192. data/test/freelancer/models/news_test.rb +15 -0
  193. data/test/freelancer/models/notification_test.rb +15 -0
  194. data/test/freelancer/models/project_budget_test.rb +18 -0
  195. data/test/freelancer/models/project_fee_test.rb +17 -0
  196. data/test/freelancer/models/project_test.rb +97 -0
  197. data/test/freelancer/models/review_test.rb +36 -0
  198. data/test/freelancer/models/transaction_test.rb +29 -0
  199. data/test/freelancer/models/user_test.rb +94 -0
  200. data/test/freelancer/models/withdrawal_fee_test.rb +19 -0
  201. data/test/freelancer/models/withdrawal_test.rb +20 -0
  202. data/test/freelancer/oauth_test.rb +112 -0
  203. data/test/freelancer_test.rb +1 -0
  204. data/test/test_helper.rb +42 -0
  205. metadata +427 -0
@@ -0,0 +1,51 @@
1
+ module Freelancer
2
+ module Models
3
+ class Withdrawal
4
+
5
+ include JSONMapper
6
+
7
+ # The id of the withdrawal
8
+ #
9
+ # Provided from:
10
+ # - /Payment/getAccountWithdrawalList.json
11
+ json_attribute :id, Integer
12
+
13
+ # The type of withdrawal
14
+ #
15
+ # Provided from:
16
+ # - /Payment/getAccountWithdrawalList.json
17
+ json_attribute :type, String
18
+
19
+ # The amount of money withdrawed
20
+ #
21
+ # Provided from:
22
+ # - /Payment/getAccountWithdrawalList.json
23
+ json_attribute :amount, Float
24
+
25
+ # The details of the withdrawal
26
+ #
27
+ # Provided from:
28
+ # - /Payment/getAccountWithdrawalList.json
29
+ json_attribute :details, String
30
+
31
+ # The date and time the withdrawal was requested
32
+ #
33
+ # Provided from:
34
+ # - /Payment/getAccountWithdrawalList.json
35
+ json_attribute :requested_at, :request_at, DateTime
36
+
37
+ # The date and time the withdrawal will be processed
38
+ #
39
+ # Provided from:
40
+ # - /Payment/getAccountWithdrawalList.json
41
+ json_attribute :processing_at, :processing_date, String
42
+
43
+ # The status of the withdrawal
44
+ #
45
+ # Provided from:
46
+ # - /Payment/getAccountWithdrawalList.json
47
+ json_attribute :status, String
48
+
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,39 @@
1
+ module Freelancer
2
+ module Models
3
+ class WithdrawalFee
4
+
5
+ include JSONMapper
6
+
7
+ # The withdrawal type
8
+ #
9
+ # Provided from:
10
+ # - /Payment/getWithdrawalFees.json
11
+ json_attribute :withdrawal_type, :withdrawtype, String
12
+
13
+ # The withdrawal fee
14
+ #
15
+ # Provided from:
16
+ # - /Payment/getWithdrawalFees.json
17
+ json_attribute :fee, :charge, Integer
18
+
19
+ # The minimum amount that can be withdrawn
20
+ #
21
+ # Provided from:
22
+ # - /Payment/getWithdrawalFees.json
23
+ json_attribute :minimum_amount, :minamount, Integer
24
+
25
+ # The maximum amount that can be withdrawn
26
+ #
27
+ # Provided from:
28
+ # - /Payment/getWithdrawalFees.json
29
+ json_attribute :maximum_amount, :maxamount, Integer
30
+
31
+ # The country code where the withdrawal type is available
32
+ #
33
+ # Provided from:
34
+ # - /Payment/getWithdrawalFees.json
35
+ json_attribute :country_code, :countrycode, String
36
+
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,95 @@
1
+ module Freelancer
2
+ module Support
3
+ class JSONMapper
4
+
5
+ attr_reader :model
6
+ attr_reader :mappings
7
+
8
+ # Initialize the JSON mapper
9
+ def initialize(model)
10
+ @model = model
11
+ @mappings = {}
12
+ end
13
+
14
+ # Map a key against the given model value
15
+ def map(from, to)
16
+ @mappings[from] = to
17
+ end
18
+
19
+ # Build a JSON data structure of the current mapping according to the
20
+ # format specifications from the Freelancer.com API.
21
+ def to_json
22
+
23
+ # Build a Hash of the current mappings
24
+ structure = {}
25
+ mappings.each_pair do |from, to|
26
+
27
+ # If our "to" is a hash, build a nested hash into the structure
28
+ if to.is_a?(Hash)
29
+
30
+ structure[to.keys.first] ||= {}
31
+ structure[to.keys.first][to.values.first] = model[from]
32
+
33
+ else
34
+ structure[to] = model[from]
35
+ end
36
+
37
+ end
38
+
39
+ structure
40
+
41
+ end
42
+
43
+ # Populate the fields of the model by mapping the JSON data structure
44
+ # specified against the model attributes.
45
+ def from_json(json)
46
+
47
+ json.each_pair do |key, value|
48
+
49
+ # If our value is a hash and it's mapped by the mapper,
50
+ # do a special hash lookup on the map target
51
+ # for each of the key+nested key combinations
52
+ if value.is_a?(Hash) && mapped_as_hash?(key)
53
+
54
+ value.each_pair do |nested_key, nested_value|
55
+ map_key = mapped_from({ key => nested_key })
56
+ raise ArgumentError.new("Unable to map key #{{ key => nested_key }.inspect} to model attribute") if map_key.nil?
57
+ model[map_key] = nested_value
58
+ end
59
+
60
+ else
61
+ map_key = mapped_from(key)
62
+ raise ArgumentError.new("Unable to map key #{key} to model attribute") if map_key.nil?
63
+ model[map_key] = value
64
+ end
65
+
66
+
67
+ end
68
+
69
+ model
70
+
71
+ end
72
+
73
+ private
74
+
75
+ # Find the "from" key for the given map "to" key
76
+ def mapped_from(to)
77
+
78
+ mappings.each_pair do |key, value|
79
+ return key if (value.is_a?(Array) && value.include?(to)) || value == to
80
+ end
81
+ nil
82
+
83
+ end
84
+
85
+ # Check if the specified key is mapped as a hash
86
+ def mapped_as_hash?(key)
87
+ mappings.values.each do |mapping|
88
+ return true if mapping.is_a?(Hash) && mapping.keys.first == key
89
+ end
90
+ false
91
+ end
92
+
93
+ end
94
+ end
95
+ end
@@ -0,0 +1 @@
1
+ {"json-result":{"function":"withdrawalfee","version":"1"}}
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
3
+ <function>withdrawalfee</function>
4
+ <version>3</version>
5
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"count":1,"items":[{"projectid":280,"userid":123456,"username":"test-username","rateuntil":"2010-11-06 01:53:34","status":"Paid"}]}}
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
3
+ <count>2</count>
4
+ <items>
5
+ <feedback>
6
+ <projectid>658116</projectid>
7
+ <userid>1619638</userid>
8
+ <username>lsy003</username>
9
+ <rateuntil>2010-09-14 01:55:08</rateuntil>
10
+ <status>Unpaid</status>
11
+ </feedback>
12
+ <feedback>
13
+ <projectid>658028</projectid>
14
+ <userid>1619638</userid>
15
+ <username>lsy003</username>
16
+ <rateuntil>2010-09-14 01:31:01</rateuntil>
17
+ <status>Paid</status>
18
+ </feedback>
19
+ </items>
20
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"terms":"Test terms"}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
3
+ <terms>New API Terms &amp; Conditions</terms>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,3 @@
1
+ <xml-result>
2
+ <statusconfirmation>1</statusconfirmation>
3
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"eligible":0,"bonuspoints":0}}
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
3
+ <eligible>1</eligible>
4
+ <bonuspoints>100</bonuspoints>
5
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"count":2,"items":[{"projectname":"Test project name","projectid":279,"projecturl":"http:\/\/www.sandbox.freelancer.com\/projects\/PHP-NET\/Test-project-name.html","bidcount":0,"averagebid":false,"pmb":false,"status":"A","enddate":"2010-08-22 01:34:34","additionalstatus":"Open"},{"projectname":"Test project to get some reviews on my account","projectid":148,"projecturl":"http:\/\/www.sandbox.freelancer.com\/projects\/NET\/Test-project-get-some-reviews.html","bidcount":1,"averagebid":500,"pmb":false,"status":"F","enddate":"2010-06-09 21:48:38","additionalstatus":"Frozen"}]}}
@@ -0,0 +1,38 @@
1
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
2
+ <count>15</count>
3
+ <items>
4
+ <project>
5
+ <projectname>test project6 posted by API curl</projectname>
6
+ <projectid>589198</projectid>
7
+ <projecturl>http://www.sandbox.freelancer.com/projects/PHP-Java/test-project-posted-API-curl.589198.html</projecturl>
8
+ <bidcount>0</bidcount>
9
+ <averagebid />
10
+ <pmb />
11
+ <status>A</status>
12
+ <enddate>2010-03-29 23:13:47</enddate>
13
+ <additionalstatus>Open</additionalstatus>
14
+ </project>
15
+ <project>
16
+ <projectname>test project5 posted by API curl</projectname>
17
+ <projectid>589197</projectid>
18
+ <projecturl>http://www.sandbox.freelancer.com/projects/PHP-Java/test-project-posted-API-curl.589197.html</projecturl>
19
+ <bidcount>0</bidcount>
20
+ <averagebid />
21
+ <pmb />
22
+ <status>A</status>
23
+ <enddate>2010-03-29 23:12:49</enddate>
24
+ <additionalstatus>Open</additionalstatus>
25
+ </project>
26
+ <project>
27
+ <projectname>test project4 posted by API curl</projectname>
28
+ <projectid>589196</projectid>
29
+ <projecturl>http://www.sandbox.freelancer.com/projects/PHP-Java/test-project-posted-API-curl.589196.html</projecturl>
30
+ <bidcount>0</bidcount>
31
+ <averagebid />
32
+ <pmb />
33
+ <status>A</status>
34
+ <enddate>2010-03-29 23:11:03</enddate>
35
+ <additionalstatus>Open</additionalstatus>
36
+ </project>
37
+ </items>
38
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"projectid":279,"projecturl":"http:\/\/www.sandbox.freelancer.com\/projects\/PHP-NET\/Test-project-name.html","postdatetime":"2010-08-08 01:34:34"}}
@@ -0,0 +1,5 @@
1
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
2
+ <projectid>589207</projectid>
3
+ <projecturl>http://www.sandbox.freelancer.com/projects/PHP-Java/test-project-posted-API-curl.589207.html</projecturl>
4
+ <postdatetime>Thu, 01 Apr 2010 04:48:31 +0000</postdatetime>
5
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"projectid":279,"projecturl":"http:\/\/www.sandbox.freelancer.com\/projects\/PHP-NET\/Test-project-name.html","postdatetime":"2010-08-08 01:34:34"}}
@@ -0,0 +1,5 @@
1
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
2
+ <projectid>589207</projectid>
3
+ <projecturl>http://www.sandbox.freelancer.com/projects/PHP-Java/test-project-posted-API-curl.589207.html</projecturl>
4
+ <postdatetime>Thu, 01 Apr 2010 04:48:31 +0000</postdatetime>
5
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"projectid":279,"projecturl":"http:\/\/www.sandbox.freelancer.com\/projects\/PHP-NET\/Test-project-name.html","postdatetime":"2010-08-08 01:34:34"}}
@@ -0,0 +1,5 @@
1
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
2
+ <projectid>589207</projectid>
3
+ <projecturl>http://www.sandbox.freelancer.com/projects/PHP-Java/test-project-posted-API-curl.589207.html</projecturl>
4
+ <postdatetime>Thu, 01 Apr 2010 04:48:31 +0000</postdatetime>
5
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"count":1,"items":[{"projectname":"Project for testing","projectid":191,"projecturl":"http:\/\/www.sandbox.freelancer.com\/projects\/PHP-NET\/Project-for-testing.html","bidcount":1,"averagebid":250,"pmb":false,"status":"A","enddate":"2010-07-18 00:07:43","additionalstatus":"Open"}]}}
@@ -0,0 +1,16 @@
1
+ <xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
2
+ <count>1</count>
3
+ <items>
4
+ <project>
5
+ <projectname>rick+2 project 5</projectname>
6
+ <projectid>589168</projectid>
7
+ <projecturl>http://www.sandbox.freelancer.com/projects/NET/rick-project.589168.html</projecturl>
8
+ <bidcount>1</bidcount>
9
+ <averagebid>250</averagebid>
10
+ <pmb />
11
+ <status>A</status>
12
+ <enddate>2010-05-17 21:37:35</enddate>
13
+ <additionalstatus>Open</additionalstatus>
14
+ </project>
15
+ </items>
16
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>
@@ -0,0 +1 @@
1
+ {"json-result":{"statusconfirmation":1}}
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <xml-result>
3
+ <statusconfirmation>1</statusconfirmation>
4
+ </xml-result>