freelancer 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/Gemfile +14 -0
- data/LICENSE +20 -0
- data/README.rdoc +56 -0
- data/Rakefile +34 -0
- data/VERSION +1 -0
- data/freelancer.gemspec +299 -0
- data/init.rb +2 -0
- data/lib/freelancer.rb +59 -0
- data/lib/freelancer/api.rb +20 -0
- data/lib/freelancer/api/common.rb +58 -0
- data/lib/freelancer/api/employer.rb +56 -0
- data/lib/freelancer/api/freelancer.rb +36 -0
- data/lib/freelancer/api/job.rb +46 -0
- data/lib/freelancer/api/message.rb +89 -0
- data/lib/freelancer/api/notification.rb +25 -0
- data/lib/freelancer/api/payment.rb +123 -0
- data/lib/freelancer/api/profile.rb +30 -0
- data/lib/freelancer/api/project.rb +133 -0
- data/lib/freelancer/api/user.rb +86 -0
- data/lib/freelancer/client.rb +152 -0
- data/lib/freelancer/extensions/hash.rb +11 -0
- data/lib/freelancer/models/address.rb +46 -0
- data/lib/freelancer/models/balance.rb +22 -0
- data/lib/freelancer/models/bid.rb +41 -0
- data/lib/freelancer/models/config_version.rb +21 -0
- data/lib/freelancer/models/eligibility.rb +23 -0
- data/lib/freelancer/models/job.rb +33 -0
- data/lib/freelancer/models/job_category.rb +18 -0
- data/lib/freelancer/models/message.rb +32 -0
- data/lib/freelancer/models/milestone.rb +57 -0
- data/lib/freelancer/models/news.rb +15 -0
- data/lib/freelancer/models/notification.rb +15 -0
- data/lib/freelancer/models/notification_status.rb +45 -0
- data/lib/freelancer/models/project.rb +116 -0
- data/lib/freelancer/models/project_budget.rb +21 -0
- data/lib/freelancer/models/project_fee.rb +18 -0
- data/lib/freelancer/models/project_options.rb +34 -0
- data/lib/freelancer/models/rating.rb +21 -0
- data/lib/freelancer/models/review.rb +87 -0
- data/lib/freelancer/models/transaction.rb +39 -0
- data/lib/freelancer/models/user.rb +225 -0
- data/lib/freelancer/models/withdrawal.rb +51 -0
- data/lib/freelancer/models/withdrawal_fee.rb +39 -0
- data/lib/freelancer/support/json_mapper.rb +95 -0
- data/test/fixtures/common/get_config_version.json +1 -0
- data/test/fixtures/common/get_config_version.xml +5 -0
- data/test/fixtures/common/get_pending_feedback.json +1 -0
- data/test/fixtures/common/get_pending_feedback.xml +20 -0
- data/test/fixtures/common/get_terms.json +1 -0
- data/test/fixtures/common/get_terms.xml +4 -0
- data/test/fixtures/common/post_feedback.json +1 -0
- data/test/fixtures/common/post_feedback.xml +4 -0
- data/test/fixtures/common/post_reply_for_feedback.json +1 -0
- data/test/fixtures/common/post_reply_for_feedback.xml +4 -0
- data/test/fixtures/common/request_cancel_project.json +1 -0
- data/test/fixtures/common/request_cancel_project.xml +4 -0
- data/test/fixtures/common/request_withdraw_feedback.json +1 -0
- data/test/fixtures/common/request_withdraw_feedback.xml +4 -0
- data/test/fixtures/employer/choose_winner_for_project.json +1 -0
- data/test/fixtures/employer/choose_winner_for_project.xml +3 -0
- data/test/fixtures/employer/delete_draft_project.json +1 -0
- data/test/fixtures/employer/delete_draft_project.xml +4 -0
- data/test/fixtures/employer/eligible_for_trial_project.json +1 -0
- data/test/fixtures/employer/eligible_for_trial_project.xml +5 -0
- data/test/fixtures/employer/get_posted_project_list.json +1 -0
- data/test/fixtures/employer/get_posted_project_list.xml +38 -0
- data/test/fixtures/employer/invite_user_for_project.json +1 -0
- data/test/fixtures/employer/invite_user_for_project.xml +4 -0
- data/test/fixtures/employer/post_new_draft_project.json +1 -0
- data/test/fixtures/employer/post_new_draft_project.xml +5 -0
- data/test/fixtures/employer/post_new_project.json +1 -0
- data/test/fixtures/employer/post_new_project.xml +5 -0
- data/test/fixtures/employer/post_new_trial_project.json +1 -0
- data/test/fixtures/employer/post_new_trial_project.xml +5 -0
- data/test/fixtures/employer/publish_draft_project.json +1 -0
- data/test/fixtures/employer/publish_draft_project.xml +4 -0
- data/test/fixtures/employer/update_project_details.json +1 -0
- data/test/fixtures/employer/update_project_details.xml +4 -0
- data/test/fixtures/employer/upgrade_trial_project.json +1 -0
- data/test/fixtures/employer/upgrade_trial_project.xml +4 -0
- data/test/fixtures/freelancer/accept_bid_won.json +1 -0
- data/test/fixtures/freelancer/accept_bid_won.xml +4 -0
- data/test/fixtures/freelancer/get_project_list_for_placed_bids.json +1 -0
- data/test/fixtures/freelancer/get_project_list_for_placed_bids.xml +16 -0
- data/test/fixtures/freelancer/place_bid_on_project.json +1 -0
- data/test/fixtures/freelancer/place_bid_on_project.xml +4 -0
- data/test/fixtures/freelancer/retract_bid_from_project.json +1 -0
- data/test/fixtures/freelancer/retract_bid_from_project.xml +4 -0
- data/test/fixtures/job/get_category_job_list.json +1 -0
- data/test/fixtures/job/get_category_job_list.xml +34 -0
- data/test/fixtures/job/get_job_list.json +1 -0
- data/test/fixtures/job/get_job_list.xml +17 -0
- data/test/fixtures/job/get_my_job_list.json +1 -0
- data/test/fixtures/job/get_my_job_list.xml +11 -0
- data/test/fixtures/message/get_inbox_messages.json +1 -0
- data/test/fixtures/message/get_inbox_messages.xml +22 -0
- data/test/fixtures/message/get_sent_messages.json +1 -0
- data/test/fixtures/message/get_sent_messages.xml +22 -0
- data/test/fixtures/message/get_unread_count.json +1 -0
- data/test/fixtures/message/get_unread_count.xml +4 -0
- data/test/fixtures/message/load_message_thread.json +1 -0
- data/test/fixtures/message/load_message_thread.xml +54 -0
- data/test/fixtures/message/mark_message_as_read.json +1 -0
- data/test/fixtures/message/mark_message_as_read.xml +4 -0
- data/test/fixtures/message/send_message.json +1 -0
- data/test/fixtures/message/send_message.xml +4 -0
- data/test/fixtures/notification/get_news.json +1 -0
- data/test/fixtures/notification/get_news.xml +14 -0
- data/test/fixtures/notification/get_notification.json +1 -0
- data/test/fixtures/notification/get_notification.xml +10 -0
- data/test/fixtures/payment/cancel_milestone.json +1 -0
- data/test/fixtures/payment/cancel_milestone.xml +4 -0
- data/test/fixtures/payment/create_milestone_payment.json +1 -0
- data/test/fixtures/payment/create_milestone_payment.xml +4 -0
- data/test/fixtures/payment/get_account_balance_status.json +1 -0
- data/test/fixtures/payment/get_account_balance_status.xml +12 -0
- data/test/fixtures/payment/get_account_milestone_list.json +1 -0
- data/test/fixtures/payment/get_account_milestone_list.xml +30 -0
- data/test/fixtures/payment/get_account_transaction_list.json +1 -0
- data/test/fixtures/payment/get_account_transaction_list.xml +57 -0
- data/test/fixtures/payment/get_account_withdrawal_list.json +1 -0
- data/test/fixtures/payment/get_account_withdrawal_list.xml +42 -0
- data/test/fixtures/payment/get_balance.json +1 -0
- data/test/fixtures/payment/get_balance.xml +4 -0
- data/test/fixtures/payment/get_project_list_for_transfer.json +1 -0
- data/test/fixtures/payment/get_project_list_for_transfer.xml +52 -0
- data/test/fixtures/payment/get_withdrawal_fees.json +1 -0
- data/test/fixtures/payment/get_withdrawal_fees.xml +41 -0
- data/test/fixtures/payment/prepare_transfer.json +1 -0
- data/test/fixtures/payment/prepare_transfer.xml +4 -0
- data/test/fixtures/payment/release_milestone.json +1 -0
- data/test/fixtures/payment/release_milestone.xml +4 -0
- data/test/fixtures/payment/request_cancel_withdrawal.json +1 -0
- data/test/fixtures/payment/request_cancel_withdrawal.xml +4 -0
- data/test/fixtures/payment/request_release_milestone.json +1 -0
- data/test/fixtures/payment/request_release_milestone.xml +4 -0
- data/test/fixtures/payment/request_withdrawal.json +1 -0
- data/test/fixtures/payment/request_withdrawal.xml +6 -0
- data/test/fixtures/payment/transfer_money.json +1 -0
- data/test/fixtures/payment/transfer_money.xml +4 -0
- data/test/fixtures/profile/get_account_details.json +1 -0
- data/test/fixtures/profile/get_account_details.xml +71 -0
- data/test/fixtures/profile/get_profile_info.json +1 -0
- data/test/fixtures/profile/get_profile_info.xml +53 -0
- data/test/fixtures/profile/set_profile_info.json +1 -0
- data/test/fixtures/profile/set_profile_info.xml +4 -0
- data/test/fixtures/project/get_bids_details.json +1 -0
- data/test/fixtures/project/get_bids_details.xml +19 -0
- data/test/fixtures/project/get_project_budget_config.json +1 -0
- data/test/fixtures/project/get_project_budget_config.xml +42 -0
- data/test/fixtures/project/get_project_details.json +1 -0
- data/test/fixtures/project/get_project_details.xml +78 -0
- data/test/fixtures/project/get_project_fees.json +1 -0
- data/test/fixtures/project/get_project_fees.xml +31 -0
- data/test/fixtures/project/get_public_messages.json +1 -0
- data/test/fixtures/project/get_public_messages.xml +27 -0
- data/test/fixtures/project/get_sent_messages.xml +22 -0
- data/test/fixtures/project/get_unread_count.xml +4 -0
- data/test/fixtures/project/load_message_thread.xml +54 -0
- data/test/fixtures/project/mark_message_as_read.xml +4 -0
- data/test/fixtures/project/post_public_message.json +1 -0
- data/test/fixtures/project/post_public_message.xml +4 -0
- data/test/fixtures/project/search_projects.json +1 -0
- data/test/fixtures/project/search_projects.xml +37 -0
- data/test/fixtures/project/send_message.xml +4 -0
- data/test/fixtures/user/get_user_details.json +1 -0
- data/test/fixtures/user/get_user_details.xml +32 -0
- data/test/fixtures/user/get_user_feedback.json +1 -0
- data/test/fixtures/user/get_user_feedback.xml +58 -0
- data/test/fixtures/user/get_users_by_search.json +1 -0
- data/test/fixtures/user/get_users_by_search.xml +26 -0
- data/test/freelancer/api/common_api_test.rb +82 -0
- data/test/freelancer/api/employer_api_test.rb +105 -0
- data/test/freelancer/api/freelancer_api_test.rb +72 -0
- data/test/freelancer/api/job_api_test.rb +76 -0
- data/test/freelancer/api/message_api_test.rb +144 -0
- data/test/freelancer/api/notification_api_test.rb +56 -0
- data/test/freelancer/api/payment_api_test.rb +225 -0
- data/test/freelancer/api/profile_api_test.rb +54 -0
- data/test/freelancer/api/project_api_test.rb +229 -0
- data/test/freelancer/api/user_api_test.rb +153 -0
- data/test/freelancer/client_test.rb +5 -0
- data/test/freelancer/models/balance_test.rb +24 -0
- data/test/freelancer/models/bid_test.rb +25 -0
- data/test/freelancer/models/config_version.rb +14 -0
- data/test/freelancer/models/eligibility_test.rb +14 -0
- data/test/freelancer/models/job_category_test.rb +16 -0
- data/test/freelancer/models/job_test.rb +19 -0
- data/test/freelancer/models/message_test.rb +42 -0
- data/test/freelancer/models/milestone_test.rb +21 -0
- data/test/freelancer/models/news_test.rb +15 -0
- data/test/freelancer/models/notification_test.rb +15 -0
- data/test/freelancer/models/project_budget_test.rb +18 -0
- data/test/freelancer/models/project_fee_test.rb +17 -0
- data/test/freelancer/models/project_test.rb +97 -0
- data/test/freelancer/models/review_test.rb +36 -0
- data/test/freelancer/models/transaction_test.rb +29 -0
- data/test/freelancer/models/user_test.rb +94 -0
- data/test/freelancer/models/withdrawal_fee_test.rb +19 -0
- data/test/freelancer/models/withdrawal_test.rb +20 -0
- data/test/freelancer/oauth_test.rb +112 -0
- data/test/freelancer_test.rb +1 -0
- data/test/test_helper.rb +42 -0
- metadata +427 -0
@@ -0,0 +1,22 @@
|
|
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
|
+
<message>
|
6
|
+
<projectid>658028</projectid>
|
7
|
+
<tousername>shaneyls</messagetousername>
|
8
|
+
<touserid>1289625</messagetouserid>
|
9
|
+
<datetime>2010-04-20 22:19:59</messagedatetime>
|
10
|
+
<message>posted by API</message>
|
11
|
+
<attachmentlink />
|
12
|
+
</message>
|
13
|
+
<message>
|
14
|
+
<projectid>658028</projectid>
|
15
|
+
<tousername>shaneyls</messagetousername>
|
16
|
+
<touserid>1289625</messagetouserid>
|
17
|
+
<datetime>2010-04-14 21:01:13</messagedatetime>
|
18
|
+
<message>posted by API</message>
|
19
|
+
<attachmentlink />
|
20
|
+
</message>
|
21
|
+
</items>
|
22
|
+
</xml-result>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
|
3
|
+
<count>4</count>
|
4
|
+
<items>
|
5
|
+
<message>
|
6
|
+
<id>13156760</id>
|
7
|
+
<projectid>585507</projectid>
|
8
|
+
<fromusername>lishengYul</fromusername>
|
9
|
+
<fromuserid>1346994</fromuserid>
|
10
|
+
<tousername>lyux</tousername>
|
11
|
+
<touserid>1289625</touserid>
|
12
|
+
<datetime>2010-01-08 02:45:05</datetime>
|
13
|
+
<text>Message text 1</text>
|
14
|
+
<new>0</new>
|
15
|
+
<attachmentlink />
|
16
|
+
</message>
|
17
|
+
<message>
|
18
|
+
<id>13156757</id>
|
19
|
+
<projectid>585507</projectid>
|
20
|
+
<fromusername>lishengYul</fromusername>
|
21
|
+
<fromuserid>1346994</fromuserid>
|
22
|
+
<tousername>lyux</tousername>
|
23
|
+
<touserid>1289625</touserid>
|
24
|
+
<datetime>2010-01-08 02:45:02</datetime>
|
25
|
+
<text>Message text 2</text>
|
26
|
+
<new>0</new>
|
27
|
+
<attachmentlink />
|
28
|
+
</message>
|
29
|
+
<message>
|
30
|
+
<id>13156140</id>
|
31
|
+
<projectid>585507</projectid>
|
32
|
+
<fromusername>lyux</fromusername>
|
33
|
+
<fromuserid>1289625</fromuserid>
|
34
|
+
<tousername>lishengYul</tousername>
|
35
|
+
<touserid>1346994</touserid>
|
36
|
+
<datetime>2010-01-08 01:58:19</datetime>
|
37
|
+
<text>Message text 3</text>
|
38
|
+
<new>0</new>
|
39
|
+
<attachmentlink />
|
40
|
+
</message>
|
41
|
+
<message>
|
42
|
+
<id>13156123</id>
|
43
|
+
<projectid>585507</projectid>
|
44
|
+
<fromusername>lyux</fromusername>
|
45
|
+
<fromuserid>1289625</fromuserid>
|
46
|
+
<tousername>lishengYul</tousername>
|
47
|
+
<touserid>1346994</touserid>
|
48
|
+
<datetime />
|
49
|
+
<text>Message text 4</text>
|
50
|
+
<new>0</new>
|
51
|
+
<attachmentlink />
|
52
|
+
</message>
|
53
|
+
</items>
|
54
|
+
</xml-result>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"json-result":{"statusconfirmation":1}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"json-result":{"count":2,"items":[{"projectid":150,"projectname":"Test Freelancer API2","bids":0,"averagebid":false,"jobtypecsv":".NET","startdate":"2010-06-06 19:08:32","timeleft":"-3 days and -4 hours","projecturl":"http://www.sandbox.freelancer.com/projects/150.html"},{"projectid":31,"projectname":"SnowTtigerLib test project1273451999","bids":0,"averagebid":false,"jobtypecsv":"CakePHP,PHP","startdate":"2010-05-10 00:39:35","timeleft":"-89 days and -22 hours","projecturl":"http://www.sandbox.freelancer.com/projects/31.html"}],"results_count":"52"}}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xml-result xmlns="http://api.freelancer.com/schemas/xml-0.1">
|
3
|
+
<count>3</count>
|
4
|
+
<items>
|
5
|
+
<project>
|
6
|
+
<projectid>589171</projectid>
|
7
|
+
<projectname>rick+2 project 8</projectname>
|
8
|
+
<bids>0</bids>
|
9
|
+
<averagebid />
|
10
|
+
<jobtypecsv>.NET</jobtypecsv>
|
11
|
+
<startdate>2010-03-23 22:53:15</startdate>
|
12
|
+
<timeleft>44 days and 2 hours</timeleft>
|
13
|
+
<projecturl>http://www.lisheng.staging.getafreelancer.com/projects/589171.html</projecturl>
|
14
|
+
</project>
|
15
|
+
<project>
|
16
|
+
<projectid>589143</projectid>
|
17
|
+
<projectname>wxc2008 project 13</projectname>
|
18
|
+
<bids>0</bids>
|
19
|
+
<averagebid />
|
20
|
+
<jobtypecsv>.NET,Java</jobtypecsv>
|
21
|
+
<startdate>2010-03-22 02:14:29</startdate>
|
22
|
+
<timeleft>42 days and 5 hours</timeleft>
|
23
|
+
<projecturl>http://www.lisheng.staging.getafreelancer.com/projects/Java-NET/wxc-project.html</projecturl>
|
24
|
+
</project>
|
25
|
+
<project>
|
26
|
+
<projectid>589125</projectid>
|
27
|
+
<projectname>wxc2008 project 12</projectname>
|
28
|
+
<bids>0</bids>
|
29
|
+
<averagebid />
|
30
|
+
<jobtypecsv>.NET</jobtypecsv>
|
31
|
+
<startdate>2010-03-22 02:10:18</startdate>
|
32
|
+
<timeleft>42 days and 5 hours</timeleft>
|
33
|
+
<projecturl>http://www.lisheng.staging.getafreelancer.com/projects/589125.html</projecturl>
|
34
|
+
</project>
|
35
|
+
</items>
|
36
|
+
<results_count>144</results_count>
|
37
|
+
</xml-result>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"user":{"url":"http://www.sandbox.freelancer.com/users/123456.html","id":123456,"username":"test-user","logo_url":false,"profile_logo_url":"../../img/unknown.png","reg_unixtime":1275687444,"reg_date":"Fri, 04 Jun 2010 17:37:24 -0400","company":"Test Company","gold":1,"address":{"country":"Norway","city":"Oslo"},"hourlyrate":20,"rating":{"avg":"0","count":0},"provider_rating":{"avg":"0","count":0},"buyer_rating":{"avg":"0","count":0},"jobs":["JSP","Perl","PHP","Ruby & Ruby on Rails"]}}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<User xmlns="http://api.freelancer.com/schemas/xml-0.1">
|
3
|
+
<url>http://www.sandbox.freelancer.com/users/1353594.html</url>
|
4
|
+
<id>1353594</id>
|
5
|
+
<username>lsy001</username>
|
6
|
+
<logo_url />
|
7
|
+
<reg_unixtime>1265161755</reg_unixtime>
|
8
|
+
<reg_date>Tue, 02 Feb 2010 20:49:15 -0500</reg_date>
|
9
|
+
<company>freelancer.com</company>
|
10
|
+
<gold>1</gold>
|
11
|
+
<address>
|
12
|
+
<country>Australia</country>
|
13
|
+
<city>Sydney</city>
|
14
|
+
</address>
|
15
|
+
<hourlyrate />
|
16
|
+
<rating>
|
17
|
+
<avg>9.25</avg>
|
18
|
+
<count>4</count>
|
19
|
+
</rating>
|
20
|
+
<provider_rating>
|
21
|
+
<avg>0</avg>
|
22
|
+
<count>0</count>
|
23
|
+
</provider_rating>
|
24
|
+
<buyer_rating>
|
25
|
+
<avg />
|
26
|
+
<count>4</count>
|
27
|
+
</buyer_rating>
|
28
|
+
<jobs>
|
29
|
+
<job>.NET</job>
|
30
|
+
<job>Java</job>
|
31
|
+
</jobs>
|
32
|
+
</User>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"user":{"Userid":123456,"totalreviews":{"totalcounts":1,"items":[{"reviewername":"test-username","revieweruserid":123456,"projectname":"Test project name","projectid":123,"winnerbid":"300","reviewdate":"2010-05-24 07:23:18","rating":9,"commenttext":"Test comment","userreplyoncomment":"Test reply"}]}}}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<User>
|
3
|
+
<Userid>1353594</Userid>
|
4
|
+
<totalreviews>
|
5
|
+
<totalcounts>3</totalcounts>
|
6
|
+
<item>
|
7
|
+
<reviewername>shaneyls</reviewername>
|
8
|
+
<revieweruserid>1289625</revieweruserid>
|
9
|
+
<projectname>test for milestone payment XI</projectname>
|
10
|
+
<projectid>588920</projectid>
|
11
|
+
<winnerbid>250</winnerbid>
|
12
|
+
<reviewdate>2010-02-04 23:49:20</reviewdate>
|
13
|
+
<rating>10</rating>
|
14
|
+
<commenttext>Comment Text</commenttext>
|
15
|
+
<userreplyoncomment/>
|
16
|
+
</item>
|
17
|
+
<item>
|
18
|
+
<reviewername>shaneyls</reviewername>
|
19
|
+
<revieweruserid>1289625</revieweruserid>
|
20
|
+
<projectname>Deleted project #588917</projectname>
|
21
|
+
<projectid>588917</projectid>
|
22
|
+
<winnerbid>250</winnerbid>
|
23
|
+
<reviewdate>2010-02-04 22:10:31</reviewdate>
|
24
|
+
<rating>10</rating>
|
25
|
+
<commenttext>Sample comment</commenttext>
|
26
|
+
<userreplyoncomment/>
|
27
|
+
</item>
|
28
|
+
<item>
|
29
|
+
<reviewername>shaneyls</reviewername>
|
30
|
+
<revieweruserid>1289625</revieweruserid>
|
31
|
+
<projectname>Deleted project #588916</projectname>
|
32
|
+
<projectid>588916</projectid>
|
33
|
+
<winnerbid>250</winnerbid>
|
34
|
+
<reviewdate>2010-02-04 21:54:44</reviewdate>
|
35
|
+
<rating>10</rating>
|
36
|
+
<commenttext>Sample comment</commenttext>
|
37
|
+
<userreplyoncomment/>
|
38
|
+
</item>
|
39
|
+
</totalreviews>
|
40
|
+
<insignia>
|
41
|
+
<item>
|
42
|
+
<insignianame>logo-g</insignianame>
|
43
|
+
<insigniadesc>Grandmaster Logo Designer</insigniadesc>
|
44
|
+
</item>
|
45
|
+
<item>
|
46
|
+
<insignianame>freelancer-white</insignianame>
|
47
|
+
<insigniadesc>The Freelancer.com Quartermaster</insigniadesc>
|
48
|
+
</item>
|
49
|
+
<item>
|
50
|
+
<insignianame>freelancer-black</insignianame>
|
51
|
+
<insigniadesc>Freelancer.com Admin</insigniadesc>
|
52
|
+
</item>
|
53
|
+
<item>
|
54
|
+
<insignianame>UKmember</insignianame>
|
55
|
+
<insigniadesc>Foundation Freelancer.co.uk Member</insigniadesc>
|
56
|
+
</item>
|
57
|
+
</insignia>
|
58
|
+
</User>
|
@@ -0,0 +1 @@
|
|
1
|
+
{"json-result":{"count":1,"items":[{"username":"test-username","userid":"123456","company":null,"address":{"country":null,"city":null},"averagepricing":null}]}}
|
@@ -0,0 +1,26 @@
|
|
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
|
+
<User>
|
6
|
+
<username>lsy001</username>
|
7
|
+
<userid>1353594</userid>
|
8
|
+
<company>freelancer.com</company>
|
9
|
+
<address>
|
10
|
+
<country>Australia</country>
|
11
|
+
<city>Sydney</city>
|
12
|
+
</address>
|
13
|
+
<averagepricing />
|
14
|
+
</User>
|
15
|
+
<user>
|
16
|
+
<username>NovaStudios</username>
|
17
|
+
<userid>276498</userid>
|
18
|
+
<company>Nova Studios</company>
|
19
|
+
<address>
|
20
|
+
<country>Croatia (Hrvatska)</country>
|
21
|
+
<city>Viinada</city>
|
22
|
+
</address>
|
23
|
+
<averagepricing>20</averagepricing>
|
24
|
+
</user>
|
25
|
+
</items>
|
26
|
+
</xml-result>
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class CommonApiTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "common api" do
|
6
|
+
|
7
|
+
setup do
|
8
|
+
@freelancer = Freelancer::Client.new("consumer_token", "consumer_secret")
|
9
|
+
consumer = OAuth::Consumer.new("consumer_token", "consumer_secret", { :site => "http://api.sandbox.freelancer.com" })
|
10
|
+
@freelancer.stubs(:consumer).returns(consumer)
|
11
|
+
@freelancer.authorize_from_access("access_token", "access_secret")
|
12
|
+
end
|
13
|
+
|
14
|
+
context "pending feedback" do
|
15
|
+
|
16
|
+
should "be able to retrieve" do
|
17
|
+
|
18
|
+
@freelancer.expects(:api_get).with("/Common/getPendingFeedback.json", {})
|
19
|
+
@freelancer.pending_feedback
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
should "be able to retrieve by type" do
|
24
|
+
|
25
|
+
@freelancer.expects(:api_get).with("/Common/getPendingFeedback.json", { :type => "P" })
|
26
|
+
@freelancer.pending_feedback(:type => "P")
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
should "parse response into a collection of projects" do
|
31
|
+
|
32
|
+
stub_api_get("/Common/getPendingFeedback.json", "common/get_pending_feedback.json")
|
33
|
+
projects = @freelancer.pending_feedback
|
34
|
+
projects.size.should == 1
|
35
|
+
projects.first.id.should == 280
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
context "config version" do
|
42
|
+
|
43
|
+
should "be able to retrieve" do
|
44
|
+
|
45
|
+
@freelancer.expects(:api_get).with("/Common/getConfigVersion.json", { :function => "withdrawalfee" })
|
46
|
+
@freelancer.config_version(:function => "withdrawalfee")
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
should "parse response into a config version model" do
|
51
|
+
|
52
|
+
stub_api_get("/Common/getConfigVersion.json?function=withdrawalfee", "common/get_config_version.json")
|
53
|
+
version = @freelancer.config_version(:function => "withdrawalfee")
|
54
|
+
version.function.should == "withdrawalfee"
|
55
|
+
version.version.should == 1
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
context "terms" do
|
62
|
+
|
63
|
+
should "be able to retrieve" do
|
64
|
+
|
65
|
+
@freelancer.expects(:api_get).with("/Common/getTerms.json")
|
66
|
+
@freelancer.terms
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
should "return the terms as a string" do
|
71
|
+
|
72
|
+
stub_api_get("/Common/getTerms.json", "common/get_terms.json")
|
73
|
+
terms = @freelancer.terms
|
74
|
+
terms.should == "Test terms"
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class EmployerApiTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "employer api" do
|
6
|
+
|
7
|
+
setup do
|
8
|
+
@freelancer = Freelancer::Client.new("consumer_token", "consumer_secret")
|
9
|
+
consumer = OAuth::Consumer.new("consumer_token", "consumer_secret", { :site => "http://api.sandbox.freelancer.com" })
|
10
|
+
@freelancer.stubs(:consumer).returns(consumer)
|
11
|
+
@freelancer.authorize_from_access("access_token", "access_secret")
|
12
|
+
end
|
13
|
+
|
14
|
+
context "posted project list" do
|
15
|
+
|
16
|
+
should "be able to retrieve" do
|
17
|
+
|
18
|
+
@freelancer.expects(:api_get).with("/Employer/getPostedProjectList.json", {})
|
19
|
+
@freelancer.posted_projects
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
should "be able to retrieve by status" do
|
24
|
+
|
25
|
+
@freelancer.expects(:api_get).with("/Employer/getPostedProjectList.json", { :status => 1 })
|
26
|
+
@freelancer.posted_projects(:status => 1)
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
should "be able to retrieve by user id" do
|
31
|
+
|
32
|
+
@freelancer.expects(:api_get).with("/Employer/getPostedProjectList.json", { :userid => 1 })
|
33
|
+
@freelancer.posted_projects(:user_id => 1)
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
should "be able to retrieve by project id" do
|
38
|
+
|
39
|
+
@freelancer.expects(:api_get).with("/Employer/getPostedProjectList.json", { :projectid => 1 })
|
40
|
+
@freelancer.posted_projects(:project_id => 1)
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
should "be able to retrieve by type" do
|
45
|
+
|
46
|
+
@freelancer.expects(:api_get).with("/Employer/getPostedProjectList.json", { :projectoption => "trial" })
|
47
|
+
@freelancer.posted_projects(:type => "trial")
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
should "remove type param if set to active" do
|
52
|
+
|
53
|
+
@freelancer.expects(:api_get).with("/Employer/getPostedProjectList.json", {})
|
54
|
+
@freelancer.posted_projects(:type => "active")
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
should "be able to change result count" do
|
59
|
+
|
60
|
+
@freelancer.expects(:api_get).with("/Employer/getPostedProjectList.json", { :count => 10 })
|
61
|
+
@freelancer.posted_projects(:count => 10)
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
should "be able to change result page" do
|
66
|
+
|
67
|
+
@freelancer.expects(:api_get).with("/Employer/getPostedProjectList.json", { :page => 2 })
|
68
|
+
@freelancer.posted_projects(:page => 2)
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
should "parse response into a collection of projects" do
|
73
|
+
|
74
|
+
stub_api_get("/Employer/getPostedProjectList.json", "employer/get_posted_project_list.json")
|
75
|
+
projects = @freelancer.posted_projects
|
76
|
+
projects.size.should == 2
|
77
|
+
projects.first.id.should == 279
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
context "trial project eligibility" do
|
84
|
+
|
85
|
+
should "be able to query" do
|
86
|
+
|
87
|
+
@freelancer.expects(:api_get).with("/Employer/eligibleForTrialProject.json")
|
88
|
+
@freelancer.eligible_for_trial_project?
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
should "parse response into a eligibility model" do
|
93
|
+
|
94
|
+
stub_api_get("/Employer/eligibleForTrialProject.json", "employer/eligible_for_trial_project.json")
|
95
|
+
eligibility = @freelancer.eligible_for_trial_project
|
96
|
+
eligibility.eligible?.should == false
|
97
|
+
eligibility.bonus_points.should == 0
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|