boxrubylib 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +7 -2
- data/README.rdoc +3 -1
- data/lib/boxrubylib/boxclientlib.rb +106 -85
- data/lib/boxrubylib/restclientlib.rb +5 -4
- data/lib/boxrubylib.rb +1 -1
- data/test/test_boxrubylib.rb +246 -11
- metadata +2 -2
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -8,12 +8,14 @@ Ruby library of OpenBox API.
|
|
8
8
|
|
9
9
|
== SYNOPSIS:
|
10
10
|
|
11
|
+
See also test case.
|
12
|
+
|
11
13
|
require 'rubygems'
|
12
14
|
gem 'boxrubylib'
|
13
15
|
require 'boxrubylib'
|
14
16
|
|
15
17
|
client = BoxClientLib::BoxRestClient.new()
|
16
|
-
|
18
|
+
|
17
19
|
== INSTALL:
|
18
20
|
|
19
21
|
sudo gem install boxrubylib
|
@@ -2,7 +2,8 @@
|
|
2
2
|
#Author:: Tomohiko Ariki, Makoto Kobayashi
|
3
3
|
#CopyRights:: Canon Software Inc.
|
4
4
|
#Created date:: 2009/06/10
|
5
|
-
#
|
5
|
+
#Last Modified:: 2009/11/09
|
6
|
+
#Version:: 1.0.1
|
6
7
|
#
|
7
8
|
#This file contains Box.net service class.
|
8
9
|
|
@@ -26,16 +27,16 @@ module BoxClientLib
|
|
26
27
|
@@upload = "upload.box.net"
|
27
28
|
@@apiPath = "/api/1.0/rest"
|
28
29
|
@@header = {
|
29
|
-
"User-Agent" => "boxclientlib/0.0.
|
30
|
+
"User-Agent" => "boxclientlib/0.0.2\r\n"
|
30
31
|
}
|
31
32
|
attr_accessor :apiKey, :userStorageInfo
|
32
33
|
|
33
34
|
# Constructor.
|
34
35
|
#
|
35
|
-
#
|
36
|
-
def initialize
|
37
|
-
super
|
38
|
-
@apiKey =
|
36
|
+
# You must set Api key
|
37
|
+
def initialize(apiKey)
|
38
|
+
super()
|
39
|
+
@apiKey = apiKey
|
39
40
|
end
|
40
41
|
|
41
42
|
# Request ticket to receive auth token.
|
@@ -101,7 +102,12 @@ module BoxClientLib
|
|
101
102
|
"login" => login,
|
102
103
|
"password" => password
|
103
104
|
}
|
104
|
-
|
105
|
+
sslFlag = @useSSL
|
106
|
+
begin
|
107
|
+
doc = getRequest(@@server, @useSSL == false ? @@port : @@sslPort, @@apiPath, params, @@header)
|
108
|
+
ensure
|
109
|
+
@useSSL = sslFlag
|
110
|
+
end
|
105
111
|
return checkError(doc, "successful_register")
|
106
112
|
end
|
107
113
|
|
@@ -111,7 +117,7 @@ module BoxClientLib
|
|
111
117
|
# The login username of the user for which you would like to verify registration.
|
112
118
|
#
|
113
119
|
# [Return value]
|
114
|
-
# True, if
|
120
|
+
# True, if user email is available to register.
|
115
121
|
def verifyRegistrationEmail(login)
|
116
122
|
params = {
|
117
123
|
"action" => "verify_registration_email",
|
@@ -119,7 +125,7 @@ module BoxClientLib
|
|
119
125
|
"login" => login
|
120
126
|
}
|
121
127
|
doc = getRequest(@@server, @useSSL == false ? @@port : @@sslPort, @@apiPath, params, @@header)
|
122
|
-
return checkError(doc, "
|
128
|
+
return checkError(doc, "email_ok")
|
123
129
|
end
|
124
130
|
|
125
131
|
# Update user's storage information.
|
@@ -293,7 +299,7 @@ module BoxClientLib
|
|
293
299
|
"action" => "get_file_info",
|
294
300
|
"api_key" => @apiKey,
|
295
301
|
"auth_token" => @userStorageInfo.authToken,
|
296
|
-
"
|
302
|
+
"file_id" => fileId
|
297
303
|
}
|
298
304
|
doc = getRequest(@@server, @useSSL == false ? @@port : @@sslPort, @@apiPath, params, @@header)
|
299
305
|
checkError(doc, "s_get_file_info")
|
@@ -321,8 +327,8 @@ module BoxClientLib
|
|
321
327
|
"target_id" => targetId,
|
322
328
|
"description" => description
|
323
329
|
}
|
324
|
-
doc = getRequest(@@server, @useSSL == false ? @@port : @@sslPort, @@apiPath, params)
|
325
|
-
return checkError(doc, "
|
330
|
+
doc = getRequest(@@server, @useSSL == false ? @@port : @@sslPort, @@apiPath, params, @@header)
|
331
|
+
return checkError(doc, "s_set_description")
|
326
332
|
end
|
327
333
|
|
328
334
|
# Upload file (If same file name is already exist target folder, it will be overwritten).
|
@@ -433,6 +439,7 @@ module BoxClientLib
|
|
433
439
|
# An message to be included in a notification email.
|
434
440
|
# [emails]
|
435
441
|
# An array of emails for which to notify users about the newly shared file or folder.
|
442
|
+
# If you don't want to notify, you can pass this parameter to nil.
|
436
443
|
#
|
437
444
|
# [Return value]
|
438
445
|
# Public name.
|
@@ -483,7 +490,7 @@ module BoxClientLib
|
|
483
490
|
# [message]
|
484
491
|
# An message to be included in a notification email.
|
485
492
|
# [emails]
|
486
|
-
# An array of emails for which to share (and notify) users about the newly shared file or folder.
|
493
|
+
# An array of emails for which to share (and notify) users about the newly shared file or folder. Not allowed nil.
|
487
494
|
# [notify]
|
488
495
|
# 1 - notification email will be sent to users, 0 - not notification.
|
489
496
|
#
|
@@ -517,7 +524,7 @@ module BoxClientLib
|
|
517
524
|
#
|
518
525
|
# [Return value]
|
519
526
|
# True, if success.
|
520
|
-
def requestFriends(
|
527
|
+
def requestFriends(message, emails, options)
|
521
528
|
params = {
|
522
529
|
"action" => "request_friends",
|
523
530
|
"api_key" => @apiKey,
|
@@ -562,7 +569,7 @@ module BoxClientLib
|
|
562
569
|
# [folderId]
|
563
570
|
# The folder ID of the folder to which you will add user to user's storage.
|
564
571
|
# [tags]
|
565
|
-
#
|
572
|
+
# An array of tags for which to apply to the file or folder.
|
566
573
|
#
|
567
574
|
# [Return value]
|
568
575
|
# True, if success.
|
@@ -575,7 +582,7 @@ module BoxClientLib
|
|
575
582
|
"target" => target,
|
576
583
|
"public_name" => publicName,
|
577
584
|
"folder_id" => folderId,
|
578
|
-
"tags" => tags
|
585
|
+
"tags[]" => tags
|
579
586
|
}
|
580
587
|
doc = getRequest(@@server, @useSSL == false ? @@port : @@sslPort, @@apiPath, params, @@header)
|
581
588
|
return checkError(doc, "addtomybox_ok")
|
@@ -590,7 +597,7 @@ module BoxClientLib
|
|
590
597
|
# [targetId]
|
591
598
|
# The id of the item you wish to add to tag(s).
|
592
599
|
# [tags]
|
593
|
-
#
|
600
|
+
# An array of tags for which to apply to the file or folder.
|
594
601
|
#
|
595
602
|
# [Return value]
|
596
603
|
# True, if success.
|
@@ -601,7 +608,7 @@ module BoxClientLib
|
|
601
608
|
"auth_token" => @userStorageInfo.authToken,
|
602
609
|
"target" => target,
|
603
610
|
"target_id" => targetId,
|
604
|
-
"tags" => tags
|
611
|
+
"tags[]" => tags
|
605
612
|
}
|
606
613
|
doc = getRequest(@@server, @useSSL == false ? @@port : @@sslPort, @@apiPath, params, @@header)
|
607
614
|
return checkError(doc, "addtotag_ok")
|
@@ -621,12 +628,19 @@ module BoxClientLib
|
|
621
628
|
checkError(doc, "export_tags_ok")
|
622
629
|
tagList = Array.new
|
623
630
|
doc.elements.each('/response/tags/tag') do |tagElement|
|
624
|
-
tagList.push(TagInfo.new(
|
631
|
+
tagList.push(TagInfo.new(tagElement))
|
625
632
|
end
|
626
633
|
return tagList
|
627
634
|
end
|
628
635
|
|
629
|
-
#
|
636
|
+
# Direct login to Box.net.
|
637
|
+
# Notice:
|
638
|
+
# This method need to authorized API key.
|
639
|
+
# If you need to direct login, apply your own API key and authorization it by Box.net.
|
640
|
+
# If you do, you can use this methos same like bellow.
|
641
|
+
# box = BoxRestClient.new
|
642
|
+
# box.apiKey = yourOwnAuthorizedApiKey
|
643
|
+
# box.directLogin("login", "password")
|
630
644
|
#
|
631
645
|
# [loginName]
|
632
646
|
# Login email address.
|
@@ -636,23 +650,30 @@ module BoxClientLib
|
|
636
650
|
# [Return value]
|
637
651
|
# Auth token - if success login. nil - if not success login.
|
638
652
|
def login(loginName, password)
|
653
|
+
apiKeyExpression = "<http://"+@@server+@@apiPath+"?action=authorization&api_key=><"+@apiKey+">"
|
654
|
+
loginExpression = loginName + "<mailto:&login=" + loginName + ">"
|
655
|
+
authToken = nil
|
656
|
+
|
639
657
|
sslFlag = @useSSL
|
640
658
|
ticket = getTicket()
|
641
659
|
params = {
|
642
|
-
"
|
643
|
-
"
|
644
|
-
"login" =>
|
645
|
-
"password" => password
|
660
|
+
"action" => "authorization",
|
661
|
+
"api_key" => apiKeyExpression,
|
662
|
+
"login" => loginExpression,
|
663
|
+
"password" => password,
|
664
|
+
"method" => nil
|
646
665
|
}
|
647
666
|
@useSSL = true
|
648
|
-
uri = "/api/1.0/auth/#{ticket}"
|
649
667
|
begin
|
650
|
-
|
668
|
+
doc = getRequest(@@server, @@sslPort, @@apiPath, params, @@header)
|
669
|
+
checkError(doc, "logged")
|
670
|
+
@userStorageInfo = UserStorageInfo.new(doc.elements['/response/user'])
|
671
|
+
@userStorageInfo.authToken = doc.elements['/response/auth_token'].text
|
672
|
+
authToken = @userStorageInfo.authToken
|
651
673
|
ensure
|
652
674
|
@useSSL = sslFlag
|
653
675
|
end
|
654
|
-
return
|
655
|
-
return nil
|
676
|
+
return authToken
|
656
677
|
end
|
657
678
|
|
658
679
|
private
|
@@ -771,7 +792,7 @@ module BoxClientLib
|
|
771
792
|
class FolderInfo
|
772
793
|
attr_accessor :userId, :folderId, :folderName, :description, :createDate, :updateDate,
|
773
794
|
:totalFolderSize, :shared, :sharedLinkName, :permissions, :fileList,
|
774
|
-
:childFolderList, :numOfTags, :tagList
|
795
|
+
:childFolderList, :numOfTags, :tagList
|
775
796
|
|
776
797
|
# Constructor.
|
777
798
|
#
|
@@ -781,16 +802,16 @@ module BoxClientLib
|
|
781
802
|
|
782
803
|
private
|
783
804
|
def createFolderInfo(folderElement)
|
784
|
-
@userId = folderElement.attributes['user_id'].to_i
|
785
|
-
@folderId = folderElement.attributes['id'].to_i
|
786
|
-
@folderName = folderElement.attributes['name']
|
787
|
-
@description = folderElement.attributes['description']
|
788
|
-
@createDate = folderElement.attributes['created'].to_i
|
789
|
-
@updateDate = folderElement.attributes['updated'].to_i
|
790
|
-
@totalFolderSize = folderElement.attributes['size'].to_i
|
791
|
-
@shared = folderElement.attributes['shared'].to_i
|
792
|
-
@sharedLinkName = folderElement.attributes['shared_link']
|
793
|
-
@permissions = folderElement.attributes['permissions']
|
805
|
+
@userId = folderElement.attributes['user_id'].to_i
|
806
|
+
@folderId = folderElement.attributes['id'].to_i
|
807
|
+
@folderName = folderElement.attributes['name']
|
808
|
+
@description = folderElement.attributes['description']
|
809
|
+
@createDate = folderElement.attributes['created'].to_i
|
810
|
+
@updateDate = folderElement.attributes['updated'].to_i
|
811
|
+
@totalFolderSize = folderElement.attributes['size'].to_i
|
812
|
+
@shared = folderElement.attributes['shared'].to_i
|
813
|
+
@sharedLinkName = folderElement.attributes['shared_link']
|
814
|
+
@permissions = folderElement.attributes['permissions']
|
794
815
|
|
795
816
|
if (folderElement.elements['files'] != nil)
|
796
817
|
@fileList = Array.new
|
@@ -843,7 +864,7 @@ module BoxClientLib
|
|
843
864
|
attr_accessor :userId, :fileId, :fileName, :description, :sha1, :createDate,
|
844
865
|
:updateDate, :size, :shared, :sharedLinkName, :thumbNail, :smallThumbNail,
|
845
866
|
:largeThumbNail, :largerThumbNail, :previewThumbNail, :permissions,
|
846
|
-
:tagList
|
867
|
+
:tagList
|
847
868
|
|
848
869
|
# Constructor.
|
849
870
|
#
|
@@ -853,22 +874,22 @@ module BoxClientLib
|
|
853
874
|
|
854
875
|
private
|
855
876
|
def createFileInfoByAttributes(fileElement)
|
856
|
-
@userId = fileElement.attributes['user_id'].to_i
|
857
|
-
@fileId = fileElement.attributes['id'].to_i
|
858
|
-
@fileName = fileElement.attributes['file_name']
|
859
|
-
@description = fileElement.attributes['description']
|
860
|
-
@sha1 = fileElement.attributes['sha1']
|
861
|
-
@createDate = fileElement.attributes['created'].to_i
|
862
|
-
@updateDate = fileElement.attributes['updated'].to_i
|
863
|
-
@size = fileElement.attributes['size'].to_i
|
864
|
-
@shared = fileElement.attributes['shared'].to_i
|
865
|
-
@sharedLinkName = fileElement.attributes['shared_link']
|
866
|
-
@thumbNail = fileElement.attributes['thumbnail']
|
867
|
-
@smallThumbNail = fileElement.attributes['small_thumbnail']
|
868
|
-
@largeThumbNail = fileElement.attributes['large_thumbnail']
|
869
|
-
@largerThumbNail = fileElement.attributes['larger_thumbnail']
|
870
|
-
@previewThumbNail = fileElement.attributes['preview_thumbnail']
|
871
|
-
@permissions = fileElement.attributes['permissions']
|
877
|
+
@userId = fileElement.attributes['user_id'].to_i
|
878
|
+
@fileId = fileElement.attributes['id'].to_i
|
879
|
+
@fileName = fileElement.attributes['file_name']
|
880
|
+
@description = fileElement.attributes['description']
|
881
|
+
@sha1 = fileElement.attributes['sha1']
|
882
|
+
@createDate = fileElement.attributes['created'].to_i
|
883
|
+
@updateDate = fileElement.attributes['updated'].to_i
|
884
|
+
@size = fileElement.attributes['size'].to_i
|
885
|
+
@shared = fileElement.attributes['shared'].to_i
|
886
|
+
@sharedLinkName = fileElement.attributes['shared_link']
|
887
|
+
@thumbNail = fileElement.attributes['thumbnail']
|
888
|
+
@smallThumbNail = fileElement.attributes['small_thumbnail']
|
889
|
+
@largeThumbNail = fileElement.attributes['large_thumbnail']
|
890
|
+
@largerThumbNail = fileElement.attributes['larger_thumbnail']
|
891
|
+
@previewThumbNail = fileElement.attributes['preview_thumbnail']
|
892
|
+
@permissions = fileElement.attributes['permissions']
|
872
893
|
|
873
894
|
if (fileElement.elements['tags'] != nil)
|
874
895
|
@tagList = Array.new
|
@@ -894,7 +915,7 @@ module BoxClientLib
|
|
894
915
|
# sharedLinkName - The file's shared(public) name.
|
895
916
|
class FileInfo
|
896
917
|
attr_accessor :userId, :fileId, :fileName, :parentFolderId, :description, :sha1, :createDate,
|
897
|
-
:updateDate, :size, :shared, :sharedLinkName
|
918
|
+
:updateDate, :size, :shared, :sharedLinkName
|
898
919
|
|
899
920
|
# Constructor.
|
900
921
|
#
|
@@ -904,16 +925,16 @@ module BoxClientLib
|
|
904
925
|
|
905
926
|
private
|
906
927
|
def createFileInfo(fileElement)
|
907
|
-
@fileId = fileElement.elements['file_id'].text.to_i
|
908
|
-
@fileName = fileElement.elements['file_name'].text
|
909
|
-
@parentFolderId = fileElement.elements['folder_id'].text.to_i
|
910
|
-
@description = fileElement.elements['description'].text
|
911
|
-
@sha1 = fileElement.elements['sha1'].text
|
912
|
-
@createDate = fileElement.elements['created'].text.to_i
|
913
|
-
@updateDate = fileElement.elements['updated'].text.to_i
|
914
|
-
@size = fileElement.elements['size'].text.to_i
|
915
|
-
@shared = fileElement.elements['shared'].text.to_i
|
916
|
-
@sharedLinkName = fileElement.elements['shared_name'].text
|
928
|
+
@fileId = fileElement.elements['file_id'].text.to_i
|
929
|
+
@fileName = fileElement.elements['file_name'].text
|
930
|
+
@parentFolderId = fileElement.elements['folder_id'].text.to_i
|
931
|
+
@description = fileElement.elements['description'].text
|
932
|
+
@sha1 = fileElement.elements['sha1'].text
|
933
|
+
@createDate = fileElement.elements['created'].text.to_i
|
934
|
+
@updateDate = fileElement.elements['updated'].text.to_i
|
935
|
+
@size = fileElement.elements['size'].text.to_i
|
936
|
+
@shared = fileElement.elements['shared'].text.to_i
|
937
|
+
@sharedLinkName = fileElement.elements['shared_name'].text
|
917
938
|
end
|
918
939
|
end
|
919
940
|
|
@@ -930,7 +951,7 @@ module BoxClientLib
|
|
930
951
|
# password - Password to open the folder.
|
931
952
|
class CreatedFolderInfo
|
932
953
|
attr_accessor :userId, :folderId, :folderName, :folderPath, :shared, :sharedLinkName,
|
933
|
-
:parentFolderId, :password
|
954
|
+
:parentFolderId, :password
|
934
955
|
|
935
956
|
# Constructor.
|
936
957
|
#
|
@@ -940,14 +961,14 @@ module BoxClientLib
|
|
940
961
|
|
941
962
|
private
|
942
963
|
def createCreatedFolderInfo(folderElement)
|
943
|
-
@userId = folderElement.elements['user_id'].text.to_i
|
944
|
-
@folderId = folderElement.elements['folder_id'].text.to_i
|
945
|
-
@folderName = folderElement.elements['folder_name'].text
|
946
|
-
@folderPath = folderElement.elements['path'].text
|
947
|
-
@shared = folderElement.elements['shared'].text.to_i
|
948
|
-
@sharedLinkName = folderElement.elements['public_name'].text
|
949
|
-
@parentFolderId = folderElement.elements['parent_folder_id'].text.to_i
|
950
|
-
@password = folderElement.elements['password'].text
|
964
|
+
@userId = folderElement.elements['user_id'].text.to_i
|
965
|
+
@folderId = folderElement.elements['folder_id'].text.to_i
|
966
|
+
@folderName = folderElement.elements['folder_name'].text
|
967
|
+
@folderPath = folderElement.elements['path'].text
|
968
|
+
@shared = folderElement.elements['shared'].text.to_i
|
969
|
+
@sharedLinkName = folderElement.elements['public_name'].text
|
970
|
+
@parentFolderId = folderElement.elements['parent_folder_id'].text.to_i
|
971
|
+
@password = folderElement.elements['password'].text
|
951
972
|
end
|
952
973
|
end
|
953
974
|
|
@@ -960,7 +981,7 @@ module BoxClientLib
|
|
960
981
|
# avatarURL - The friend's avatar URL.
|
961
982
|
# boxList - Box list.
|
962
983
|
class FriendInfo
|
963
|
-
attr_accessor :friendName, :email, :accepted, :avatarURL, :boxList
|
984
|
+
attr_accessor :friendName, :email, :accepted, :avatarURL, :boxList
|
964
985
|
|
965
986
|
# Constructor.
|
966
987
|
#
|
@@ -970,10 +991,10 @@ module BoxClientLib
|
|
970
991
|
|
971
992
|
private
|
972
993
|
def createFriendInfo(friendElement)
|
973
|
-
@friendName = friendElement.elements['name'].text
|
974
|
-
@email = friendElement.elements['email'].text
|
975
|
-
@accepted = friendElement.elements['accepted'].text
|
976
|
-
@avatarURL = friendElement.elements['avatar_url'].text
|
994
|
+
@friendName = friendElement.elements['name'].text
|
995
|
+
@email = friendElement.elements['email'].text
|
996
|
+
@accepted = friendElement.elements['accepted'].text
|
997
|
+
@avatarURL = friendElement.elements['avatar_url'].text
|
977
998
|
@boxList = Array.new
|
978
999
|
fileElement.elements.each('/boxes/box') do |boxElement|
|
979
1000
|
@boxList.push(BoxInfo.new(boxElement))
|
@@ -987,7 +1008,7 @@ module BoxClientLib
|
|
987
1008
|
# boxId - The box id.
|
988
1009
|
# URL - The box URL.
|
989
1010
|
class BoxInfo
|
990
|
-
attr_accessor :boxId, :URL
|
1011
|
+
attr_accessor :boxId, :URL
|
991
1012
|
|
992
1013
|
# Constructor.
|
993
1014
|
#
|
@@ -997,8 +1018,8 @@ module BoxClientLib
|
|
997
1018
|
|
998
1019
|
private
|
999
1020
|
def createBoxList(boxElement)
|
1000
|
-
@boxId = boxElement.elements['id']
|
1001
|
-
@URL = boxElement.elements['url']
|
1021
|
+
@boxId = boxElement.elements['id']
|
1022
|
+
@URL = boxElement.elements['url']
|
1002
1023
|
end
|
1003
1024
|
end
|
1004
1025
|
#Uploaded file information class.
|
@@ -1011,7 +1032,7 @@ module BoxClientLib
|
|
1011
1032
|
# status - "upload_ok":File upload is success.
|
1012
1033
|
# others :File upload occues something error(ex. filesize_limit_exceeded).
|
1013
1034
|
class UploadedFileInfo
|
1014
|
-
attr_accessor :fileName, :fileId, :parentFolderId, :shared, :publicName, :status
|
1035
|
+
attr_accessor :fileName, :fileId, :parentFolderId, :shared, :publicName, :status
|
1015
1036
|
|
1016
1037
|
# Constructor.
|
1017
1038
|
#
|
@@ -2,7 +2,8 @@
|
|
2
2
|
#Author:: Takehiko Watanabe
|
3
3
|
#CopyRights:: Canon Software Inc.
|
4
4
|
#Created date:: 2009/06/10
|
5
|
-
#
|
5
|
+
#Last Modified:: 2009/11/09
|
6
|
+
#Version:: 1.0.1
|
6
7
|
#
|
7
8
|
#This file contains RestClientLib module.
|
8
9
|
|
@@ -31,7 +32,7 @@ module RestClientLib
|
|
31
32
|
def initialize
|
32
33
|
@proxyUrl = nil
|
33
34
|
@proxyPort = nil
|
34
|
-
@useSSL = false
|
35
|
+
@useSSL = false
|
35
36
|
end
|
36
37
|
|
37
38
|
# Throw http get request method to the server.
|
@@ -193,8 +194,8 @@ module RestClientLib
|
|
193
194
|
end
|
194
195
|
end
|
195
196
|
if ((filename != nil)&&(data != nil))
|
196
|
-
query += "--" + boundary + "\n"
|
197
|
-
query += fileToMultiPart(filename, data)
|
197
|
+
query += "--" + boundary + "\n"
|
198
|
+
query += fileToMultiPart(filename, data)
|
198
199
|
end
|
199
200
|
query += "--" + boundary + "--\n" if (query != nil)
|
200
201
|
|
data/lib/boxrubylib.rb
CHANGED
data/test/test_boxrubylib.rb
CHANGED
@@ -1,11 +1,246 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
def
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
require "boxrubylib/boxclientlib"
|
3
|
+
require "test/unit"
|
4
|
+
include BoxClientLib
|
5
|
+
|
6
|
+
class TestBoxrubylib < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
end
|
10
|
+
|
11
|
+
def showFolderInfo(folder)
|
12
|
+
if (folder == nil)
|
13
|
+
return
|
14
|
+
end
|
15
|
+
print("userId = #{folder.userId}\n")
|
16
|
+
print("folderId = #{folder.folderId}\n")
|
17
|
+
print("folderName = #{folder.folderName}\n")
|
18
|
+
print("description = #{folder.description}\n")
|
19
|
+
print("createDate = #{folder.createDate}\n")
|
20
|
+
print("updateDate = #{folder.updateDate}\n")
|
21
|
+
print("totalFolderSize = #{folder.totalFolderSize}\n")
|
22
|
+
print("shared = #{folder.shared}\n")
|
23
|
+
print("sharedLinkName = #{folder.sharedLinkName}\n")
|
24
|
+
print("permissions = #{folder.permissions}\n")
|
25
|
+
if (folder.fileList != nil)
|
26
|
+
print("--- file list ---\n")
|
27
|
+
folder.fileList.each do |file|
|
28
|
+
showFileInfo(file)
|
29
|
+
end
|
30
|
+
print("--- file list end ---\n")
|
31
|
+
end
|
32
|
+
if (folder.childFolderList != nil)
|
33
|
+
print("--- child folder list ---\n")
|
34
|
+
folder.childFolderList.each do |childFolder|
|
35
|
+
showFolderInfo(childFolder)
|
36
|
+
end
|
37
|
+
print("--- child folder list end ---\n")
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def showFileInfo(file)
|
42
|
+
print("--- file ---\n")
|
43
|
+
print("fileId = #{file.fileId}\n")
|
44
|
+
print("fileName = #{file.fileName}\n")
|
45
|
+
print("description = #{file.description}\n")
|
46
|
+
begin
|
47
|
+
print("parentFolderId = #{file.parentFolderId}\n")
|
48
|
+
rescue
|
49
|
+
end
|
50
|
+
print("sha1 = #{file.sha1}\n")
|
51
|
+
print("createDate = #{file.createDate}\n")
|
52
|
+
print("updateDate = #{file.updateDate}\n")
|
53
|
+
print("size = #{file.size}\n")
|
54
|
+
print("shared = #{file.shared}\n")
|
55
|
+
print("sharedLinkName = #{file.sharedLinkName}\n")
|
56
|
+
print("--- file end ---\n")
|
57
|
+
end
|
58
|
+
|
59
|
+
def showUserStorageInfo(usInfo)
|
60
|
+
print("loginName = #{usInfo.loginName}\n")
|
61
|
+
print("email = #{usInfo.email}\n")
|
62
|
+
print("accessId = #{usInfo.accessId}\n")
|
63
|
+
print("userId = #{usInfo.userId}\n")
|
64
|
+
print("spaceAmount = #{usInfo.spaceAmount}\n")
|
65
|
+
print("spaceUsed = #{usInfo.spaceUsed}\n")
|
66
|
+
end
|
67
|
+
|
68
|
+
def showCreatedFolderInfo(folder)
|
69
|
+
print("userId = #{folder.userId}\n")
|
70
|
+
print("folderId = #{folder.folderId}\n")
|
71
|
+
print("folderName = #{folder.folderName}\n")
|
72
|
+
print("folderPath = #{folder.folderPath}\n")
|
73
|
+
print("shared = #{folder.shared}\n")
|
74
|
+
print("sharedLinkName = #{folder.sharedLinkName}\n")
|
75
|
+
print("parentFolderId = #{folder.parentFolderId}\n")
|
76
|
+
print("password = #{folder.password}\n")
|
77
|
+
end
|
78
|
+
|
79
|
+
def showTagList(taglist)
|
80
|
+
print("-- taglist start --\n")
|
81
|
+
if (taglist != nil)
|
82
|
+
taglist.each do |tag|
|
83
|
+
print("tagId = #{tag.tagId}\n")
|
84
|
+
print("description = #{tag.description}\n")
|
85
|
+
end
|
86
|
+
end
|
87
|
+
print("--taglist end--\n")
|
88
|
+
end
|
89
|
+
|
90
|
+
def showFriendList(friendlist)
|
91
|
+
print("-- friendlist start --\n")
|
92
|
+
if (friendlist != nil)
|
93
|
+
friendlist.each do |friend|
|
94
|
+
print("friendName = #{friend.friendName}\n")
|
95
|
+
print("email = #{friend.email}\n")
|
96
|
+
print("accepted = #{friend.accepted}\n")
|
97
|
+
print("avatarURL = #{friend.avatarURL}\n")
|
98
|
+
print("boxList = #{friend.boxList}\n")
|
99
|
+
end
|
100
|
+
end
|
101
|
+
print("--friendlist end--\n")
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_start
|
105
|
+
#You need to pass actual parameters bellow if you want to run this test case.
|
106
|
+
emailAddress = "your_email@email.ne.jp"
|
107
|
+
friendEmailAddress = "your_friend_emai@email.ne.jp"
|
108
|
+
password = "your_account_password"
|
109
|
+
notRegisteredEmail = "not_registered@email.ne.jp"
|
110
|
+
publicName = "public_name"
|
111
|
+
apiKey = "your_apprication_api_key"
|
112
|
+
filePath = "./test.txt"
|
113
|
+
tags = ["tag1", "tag2"]
|
114
|
+
emails = [friendEmailAddress]
|
115
|
+
|
116
|
+
box = BoxRestClient.new(apiKey)
|
117
|
+
#login
|
118
|
+
ticket = box.getTicket()
|
119
|
+
while(true)
|
120
|
+
begin
|
121
|
+
print("You need to login at \n")
|
122
|
+
print("http://www.box.net/api/1.0/auth/#{ticket}\n")
|
123
|
+
print("from your Web browser.\n")
|
124
|
+
print("If you finish login process, press any key.\n")
|
125
|
+
STDIN.gets
|
126
|
+
authToken = box.getAuthToken(ticket)
|
127
|
+
break
|
128
|
+
rescue
|
129
|
+
print("Your login isn't success now.\nTry again?[Y/N]\n")
|
130
|
+
c = STDIN.gets.chomp
|
131
|
+
if ((c != 'y')&&(c != 'Y'))
|
132
|
+
break
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
if (authToken == nil)
|
138
|
+
exit(1)
|
139
|
+
end
|
140
|
+
|
141
|
+
printf("authtoken = %s\n", box.userStorageInfo.authToken)
|
142
|
+
begin
|
143
|
+
#Create folder as "tmptest1" on Root folder.
|
144
|
+
createdFolder1 = box.createFolder(0, "tmptest1", 1)
|
145
|
+
|
146
|
+
#Set description "tmptest1" folder.
|
147
|
+
box.setDescription("folder", createdFolder1.folderId, "folder description.")
|
148
|
+
showCreatedFolderInfo(createdFolder1)
|
149
|
+
|
150
|
+
#Create folder as "tmptest2" on Root folder.
|
151
|
+
createdFolder2 = box.createFolder(0, "tmptest2", 1)
|
152
|
+
|
153
|
+
#Rename "tmptest2" folder to "renamed".
|
154
|
+
box.rename("folder", createdFolder2.folderId, "renamed")
|
155
|
+
|
156
|
+
#Move "renamed" folder to "tmptest1" folder.
|
157
|
+
box.move("folder", createdFolder2.folderId, createdFolder1.folderId)
|
158
|
+
|
159
|
+
#Get folder information simple mode.
|
160
|
+
options = ["simple"]
|
161
|
+
folder = box.getFolderInfo(createdFolder1.folderId, options)
|
162
|
+
showFolderInfo(folder)
|
163
|
+
|
164
|
+
f = open(filePath, "r")
|
165
|
+
data = f.read
|
166
|
+
f.close
|
167
|
+
|
168
|
+
#File upload to "tmptest1" folder.
|
169
|
+
uploadedFileInfo = box.fileUpload("test.txt", data, createdFolder1.folderId, 1, nil, nil)
|
170
|
+
|
171
|
+
#File copy "test.txt" on "tmptest1" folder as "test2.txt".
|
172
|
+
uploadedFileInfo = box.fileNewCopy("test2.txt", data, uploadedFileInfo.fileId, 1, "message", emails)
|
173
|
+
|
174
|
+
#File over write "test.txt" to "test2.txt".(Only over write data. File name is still "test2.txt".)
|
175
|
+
box.fileOverWrite("test.txt", data, uploadedFileInfo.fileId, 1, nil, nil)
|
176
|
+
|
177
|
+
#File move "test2.txt" to "renamed" folder.
|
178
|
+
box.move("file", uploadedFileInfo.fileId, createdFolder2.folderId)
|
179
|
+
|
180
|
+
#Set description test2.txt as "$$$description$$$"
|
181
|
+
box.setDescription("file", uploadedFileInfo.fileId, "$$$description$$$")
|
182
|
+
file = box.getFileInfo(uploadedFileInfo.fileId)
|
183
|
+
|
184
|
+
#"test2.txt" is public shared with password "password".
|
185
|
+
box.publicShare("file", uploadedFileInfo.fileId, "password", "This file is public shared!", nil)
|
186
|
+
|
187
|
+
#Add to tag "tag1" "tag2" to "test2.txt"
|
188
|
+
box.addToTag("file", uploadedFileInfo.fileId, tags)
|
189
|
+
showFileInfo(file)
|
190
|
+
|
191
|
+
#"test2.txt" is public unshared.
|
192
|
+
box.publicUnshare("file", uploadedFileInfo.fileId)
|
193
|
+
|
194
|
+
#"test2.txt" is private shared.
|
195
|
+
box.privateShare("file", uploadedFileInfo.fileId, "This file is private shared!", emails, 0)
|
196
|
+
|
197
|
+
#Enabled SSL.
|
198
|
+
box.useSSL = true
|
199
|
+
data = box.fileDownload(uploadedFileInfo.fileId)
|
200
|
+
|
201
|
+
f = open(filePath, "w")
|
202
|
+
f.write(data)
|
203
|
+
f.close
|
204
|
+
|
205
|
+
#Get folder information about "tmptest1" folder.
|
206
|
+
folder = box.getFolderInfo(createdFolder1.folderId, nil)
|
207
|
+
showFolderInfo(folder)
|
208
|
+
|
209
|
+
#Disabled SSL.
|
210
|
+
box.useSSL = false
|
211
|
+
box.delete("folder", createdFolder1.folderId)
|
212
|
+
|
213
|
+
#Update user storage information.
|
214
|
+
box.updateUserStorageInfo
|
215
|
+
showUserStorageInfo(box.userStorageInfo)
|
216
|
+
|
217
|
+
#Get root folder information.
|
218
|
+
options = ["simple", "onelevel"]
|
219
|
+
folder = box.getRootFolderInfo(options)
|
220
|
+
showFolderInfo(folder)
|
221
|
+
|
222
|
+
#Request friends.
|
223
|
+
options = ["no_email"]
|
224
|
+
box.requestFriends("Request friends.", emails, options)
|
225
|
+
|
226
|
+
#Verify email what is not registered box.net.
|
227
|
+
box.verifyRegistrationEmail(notRegisteredEmail)
|
228
|
+
|
229
|
+
#box.registerNewUser("new@username.ne.jp", "password")
|
230
|
+
|
231
|
+
#Get tag list.
|
232
|
+
taglist = box.exportTag
|
233
|
+
showTagList(taglist)
|
234
|
+
|
235
|
+
#Get friend list.
|
236
|
+
friendList = box.getFriends
|
237
|
+
showFriendList(friendList)
|
238
|
+
|
239
|
+
#Get other user's shared file to my box.
|
240
|
+
box.addToMyStorage("file", nil, publicName, 0, tags)
|
241
|
+
ensure
|
242
|
+
#Logout.
|
243
|
+
box.logout
|
244
|
+
end
|
245
|
+
end
|
246
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boxrubylib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomohiko Ariki
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-30 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|