maestrano 0.10.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d94420ccbb524ba344eacad615d8a0ab9b131fd6
4
- data.tar.gz: c09aedc8103d853baf2e39191c9731116bc8103e
3
+ metadata.gz: 94146280a117fc153c4747915002c5697c060788
4
+ data.tar.gz: 6ed575bd6107b474f198e8ca06dc05368d4486ff
5
5
  SHA512:
6
- metadata.gz: 2c8e40d09ee79f77a21befa7baa8a75b72826129d10586f2a5ca0b90fb30e34d7bfbaef1cf4f81f996613eb524640daf12b4e8bf990f34edcff2e5d74ec2c532
7
- data.tar.gz: f8992c9d8b743bfbd704e779f9bf9df707edf0d9097f264668a59db05053a0c5a8a82ae98a05ff6ae0fdb28643acfc6faee871db75bfe0bf33f907637e3fc899
6
+ metadata.gz: e3f33f2d0360c1afca5cdd73dd987156e773eb363db502f5f272f92c2736af38f0d143b26c49847edec71b034c69f4d9aa803acbba7645746b1cf3a6f11335e4
7
+ data.tar.gz: a9d42f25ed6d85c22411cf58f5a2d2eba675c7bb1cfd6eda711675bbc659713503224b687607e3f98ffeb897638a0758d50359d01d5bccf503e766ff44c81f78
data/README.md CHANGED
@@ -25,8 +25,12 @@ Maestrano Cloud Integration is currently in closed beta. Want to know more? Send
25
25
  * [Groups Controller](#groups-controller-service-cancellation)
26
26
  * [Group Users Controller](#group-users-controller-business-member-removal)
27
27
  6. [API](#api)
28
- * [Bill](#bill)
29
- * [Recurring Bill](#recurring-bill)
28
+ * [Payment API](#payment-api)
29
+ * [Bill](#bill)
30
+ * [Recurring Bill](#recurring-bill)
31
+ * [Membership API](#membership-api)
32
+ * [User](#user)
33
+ * [Group](#group)
30
34
  7. [Connec!™ Data Sharing](#connec-data-sharing)
31
35
  * [Making Requests](#making-requests)
32
36
  * [Webhook Notifications](#webhook-notifications)
@@ -202,10 +206,10 @@ Maestrano.configure do |config|
202
206
  # config.webhook.connec.subscriptions = {
203
207
  # accounts: false,
204
208
  # company: false,
205
- # invoice: false,
206
- # item: false,
207
- # organization: false,
208
- # person: false,
209
+ # invoices: false,
210
+ # items: false,
211
+ # organizations: false,
212
+ # people: false,
209
213
  # tax_codes: false,
210
214
  # tax_rates: false
211
215
  # }
@@ -313,7 +317,11 @@ class Organization
313
317
  organization.provider = 'maestrano'
314
318
  organization.uid = sso_hash[:uid]
315
319
  organization.name = sso_hash[:info][:company_name] || 'Some default'
320
+ # organization.principal_email = sso_hash[:info][:email]
321
+ # organization.city = sso_hash[:info][:city]
322
+ # organization.olson_tz = sso_hash[:info][:timezone]
316
323
  # organization.country_alpha2 = sso_hash[:info][:country]
324
+ # organization.currency_code = sso_hash[:info][:currency]
317
325
  # organization.free_trial_end_at = sso_hash[:info][:free_trial_end_at]
318
326
 
319
327
  # Save the organization
@@ -814,8 +822,252 @@ rec_bill = Maestrano::Account::RecurringBill.retrieve("rbill-f1d2s54")
814
822
  rec_bill.cancel
815
823
  ```
816
824
 
825
+
826
+ ### Membership API
827
+
828
+ #### User
829
+ A user is a member of a group having access to your application. Users are currently readonly.
830
+
831
+ ```ruby
832
+ Maestrano::Account::User
833
+ ```
834
+
835
+ ##### Attributes
836
+
837
+ <table>
838
+ <tr>
839
+ <th>Field</th>
840
+ <th>Mode</th>
841
+ <th>Type</th>
842
+ <th>Required</th>
843
+ <th>Default</th>
844
+ <th>Description</th>
845
+ <tr>
846
+
847
+ <tr>
848
+ <td><b>id</b></td>
849
+ <td>readonly</td>
850
+ <td>String</td>
851
+ <td>-</td>
852
+ <td>-</td>
853
+ <td>The id of the user</td>
854
+ <tr>
855
+
856
+ <tr>
857
+ <td><b>name</b></td>
858
+ <td>readonly</td>
859
+ <td>String</td>
860
+ <td><b>-</b></td>
861
+ <td>-</td>
862
+ <td>The user first name</td>
863
+ <tr>
864
+
865
+ <tr>
866
+ <td><b>surname</b></td>
867
+ <td>readonly</td>
868
+ <td>String</td>
869
+ <td><b>-</b></td>
870
+ <td>-</td>
871
+ <td>The user last name</td>
872
+ <tr>
873
+
874
+ <tr>
875
+ <td><b>email</b></td>
876
+ <td>readonly</td>
877
+ <td>String</td>
878
+ <td><b>-</b></td>
879
+ <td>-</td>
880
+ <td>The user real email address</td>
881
+ <tr>
882
+
883
+ <tr>
884
+ <td><b>company_name</b></td>
885
+ <td>readonly</td>
886
+ <td>String</td>
887
+ <td><b>-</b></td>
888
+ <td>-</td>
889
+ <td>The user company name as it was entered when they signed up. Nothing related to the user group name.</td>
890
+ <tr>
891
+
892
+ <tr>
893
+ <td><b>country</b></td>
894
+ <td>readonly</td>
895
+ <td>String</td>
896
+ <td><b>-</b></td>
897
+ <td>-</td>
898
+ <td>The country of the user in <a href="http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2 format</a> (2 letter code). E.g: 'US' for USA, 'AU' for Australia.</td>
899
+ <tr>
900
+
901
+ <tr>
902
+ <td><b>created_at</b></td>
903
+ <td>readonly</td>
904
+ <td>Time</td>
905
+ <td>-</td>
906
+ <td>-</td>
907
+ <td>When the user was created</td>
908
+ <tr>
909
+
910
+ <tr>
911
+ <td><b>updated_at</b></td>
912
+ <td>readonly</td>
913
+ <td>Time</td>
914
+ <td>-</td>
915
+ <td>-</td>
916
+ <td>When the user was last updated</td>
917
+ <tr>
918
+
919
+ </table>
920
+
921
+ ##### Actions
922
+
923
+ List all users having access to your application
924
+ ```ruby
925
+ users = Maestrano::Account::User.all;
926
+ ```
927
+
928
+ Access a single user by id
929
+ ```ruby
930
+ user = Maestrano::Account::User.retrieve("usr-f1d2s54");
931
+ ```
932
+
933
+ #### Group
934
+ A group represents a customer account and is composed of members (users) having access to your application. A group also represents a chargeable account (see Bill/RecurringBill). Typically you can remotely check if a group has entered a credit card on Maestrano.
935
+
936
+ Groups are currently readonly.
937
+
938
+
939
+ ```ruby
940
+ Maestrano::Account::Group
941
+ ```
942
+
943
+ ##### Attributes
944
+
945
+ <table>
946
+ <tr>
947
+ <th>Field</th>
948
+ <th>Mode</th>
949
+ <th>Type</th>
950
+ <th>Required</th>
951
+ <th>Default</th>
952
+ <th>Description</th>
953
+ <tr>
954
+
955
+ <tr>
956
+ <td><b>id</b></td>
957
+ <td>readonly</td>
958
+ <td>String</td>
959
+ <td>-</td>
960
+ <td>-</td>
961
+ <td>The id of the group</td>
962
+ <tr>
963
+
964
+ <tr>
965
+ <td><b>name</b></td>
966
+ <td>readonly</td>
967
+ <td>String</td>
968
+ <td><b>-</b></td>
969
+ <td>-</td>
970
+ <td>The group name</td>
971
+ <tr>
972
+
973
+ <tr>
974
+ <td><b>email</b></td>
975
+ <td>readonly</td>
976
+ <td>string</td>
977
+ <td><b>-</b></td>
978
+ <td>-</td>
979
+ <td>The principal email address for this group (admin email address)</td>
980
+ <tr>
981
+
982
+ <tr>
983
+ <td><b>has_credit_card</b></td>
984
+ <td>readonly</td>
985
+ <td>Boolean</td>
986
+ <td><b>-</b></td>
987
+ <td>-</td>
988
+ <td>Whether the group has entered a credit card on Maestrano or not</td>
989
+ <tr>
990
+
991
+ <tr>
992
+ <td><b>free_trial_end_at</b></td>
993
+ <td>readonly</td>
994
+ <td>Time</td>
995
+ <td><b>-</b></td>
996
+ <td>-</td>
997
+ <td>When the group free trial will be finishing on Maestrano. You may optionally consider this date for your own free trial (optional)</td>
998
+ <tr>
999
+
1000
+ <tr>
1001
+ <td><b>currency</b></td>
1002
+ <td>readonly</td>
1003
+ <td>String</td>
1004
+ <td>-</td>
1005
+ <td>-</td>
1006
+ <td>The currency used by this Group in <a href="http://en.wikipedia.org/wiki/ISO_4217#Active_codes">ISO 4217 format</a> (3 letter code)</td>
1007
+ <tr>
1008
+
1009
+ <tr>
1010
+ <td><b>country</b></td>
1011
+ <td>readonly</td>
1012
+ <td>String</td>
1013
+ <td><b>-</b></td>
1014
+ <td>-</td>
1015
+ <td>The country of the group in <a href="http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2 format</a> (2 letter code). E.g: 'US' for USA, 'AU' for Australia.</td>
1016
+ <tr>
1017
+
1018
+ <tr>
1019
+ <td><b>city</b></td>
1020
+ <td>readonly</td>
1021
+ <td>String</td>
1022
+ <td><b>-</b></td>
1023
+ <td>-</td>
1024
+ <td>The city of the group</td>
1025
+ <tr>
1026
+
1027
+ <tr>
1028
+ <td><b>timezone</b></td>
1029
+ <td>readonly</td>
1030
+ <td>String</td>
1031
+ <td><b>-</b></td>
1032
+ <td>-</td>
1033
+ <td>The group timezone in <a href="http://en.wikipedia.org/wiki/List_of_tz_database_time_zones">Olson format</a></td>
1034
+ <tr>
1035
+
1036
+ <tr>
1037
+ <td><b>created_at</b></td>
1038
+ <td>readonly</td>
1039
+ <td>Time</td>
1040
+ <td>-</td>
1041
+ <td>-</td>
1042
+ <td>When the group was created</td>
1043
+ <tr>
1044
+
1045
+ <tr>
1046
+ <td><b>updated_at</b></td>
1047
+ <td>readonly</td>
1048
+ <td>Time</td>
1049
+ <td>-</td>
1050
+ <td>-</td>
1051
+ <td>When the group was last updated</td>
1052
+ <tr>
1053
+
1054
+ </table>
1055
+
1056
+ ##### Actions
1057
+
1058
+ List all groups having access to your application
1059
+ ```ruby
1060
+ groups = Maestrano::Account::Group.all;
1061
+ ```
1062
+
1063
+ Access a single group by id
1064
+ ```ruby
1065
+ group = Maestrano::Account::Group.retrieve("usr-f1d2s54");
1066
+ ```
1067
+
1068
+
817
1069
  ## Connec!™ Data Sharing
818
- Maestrano offers the capability to share actual business data between application via its data sharing platform Connec!™.
1070
+ Maestrano offers the capability to share actual business data between applications via its data sharing platform Connec!™.
819
1071
 
820
1072
  The platform exposes a set of RESTful JSON APIs allowing your application to receive data generated by other applications and update data in other applications as well!
821
1073
 
@@ -2,7 +2,9 @@ module Maestrano
2
2
  module SSO
3
3
  class BaseGroup
4
4
  attr_accessor :local_id
5
- attr_reader :uid,:country, :company_name, :free_trial_end_at, :has_credit_card
5
+ attr_reader :uid, :company_name, :free_trial_end_at, :has_credit_card, :name, :email, :city,
6
+ :country, :timezone, :currency
7
+
6
8
 
7
9
  # Initializer
8
10
  # @param Maestrano::SAML::Response
@@ -10,9 +12,14 @@ module Maestrano
10
12
  att = saml_response.attributes
11
13
  @uid = att['group_uid']
12
14
  @has_credit_card = (att['group_has_credit_card'] == 'true')
13
- @country = att['country']
14
15
  @free_trial_end_at = Time.iso8601(att['group_end_free_trial'])
15
16
  @company_name = att['company_name']
17
+ @name = att['group_name']
18
+ @email = att['group_email']
19
+ @city = att['group_city']
20
+ @timezone = att['group_timezone']
21
+ @currency = att['group_currency']
22
+ @country = att['country']
16
23
  end
17
24
 
18
25
  def to_hash
@@ -23,7 +30,12 @@ module Maestrano
23
30
  free_trial_end_at: self.free_trial_end_at,
24
31
  company_name: self.company_name,
25
32
  has_credit_card: self.has_credit_card,
33
+ name: self.name,
34
+ email: self.email,
35
+ city: self.city,
26
36
  country: self.country,
37
+ timezone: self.timezone,
38
+ currency: self.currency
27
39
  },
28
40
  extra: {}
29
41
  }
@@ -4,7 +4,7 @@ module Maestrano
4
4
  attr_accessor :local_id
5
5
  attr_reader :sso_session,:sso_session_recheck,
6
6
  :group_uid,:group_role,:uid,:virtual_uid,:email,
7
- :virtual_email,:first_name, :last_name,:country, :company_name
7
+ :virtual_email,:first_name, :last_name,:country, :company_name, :group_name
8
8
 
9
9
  # Initializer
10
10
  # @param Maestrano::SAML::Response
@@ -13,6 +13,7 @@ module Maestrano
13
13
  @sso_session = att['mno_session']
14
14
  @sso_session_recheck = Time.iso8601(att['mno_session_recheck'])
15
15
  @group_uid = att['group_uid']
16
+ @group_name = att['group_name']
16
17
  @group_role = att['group_role']
17
18
  @uid = att['uid']
18
19
  @virtual_uid = att['virtual_uid']
@@ -59,6 +60,7 @@ module Maestrano
59
60
  virtual_email: self.virtual_email,
60
61
  group: {
61
62
  uid: self.group_uid,
63
+ name: self.group_name,
62
64
  role: self.group_role,
63
65
  },
64
66
  session: {
@@ -1,3 +1,3 @@
1
1
  module Maestrano
2
- VERSION = '0.10.0'
2
+ VERSION = '0.11.0'
3
3
  end
@@ -8,20 +8,25 @@ module Maestrano
8
8
  setup do
9
9
  @saml_response = Maestrano::Saml::Response.new(response_document)
10
10
  @saml_response.stubs(:attributes).returns({
11
- 'mno_session' => 'f54sd54fd64fs5df4s3d48gf2',
12
- 'mno_session_recheck' => Time.now.utc.iso8601,
13
- 'group_uid' => 'cld-1',
14
- 'group_has_credit_card' => 'true',
15
- 'group_end_free_trial' => Time.now.utc.iso8601,
16
- 'group_role' => 'Admin',
17
- 'uid' => "usr-1",
18
- 'virtual_uid' => "usr-1.cld-1",
19
- 'email' => "j.doe@doecorp.com",
20
- 'virtual_email' => "usr-1.cld-1@mail.maestrano.com",
21
- 'name' => "John",
22
- "surname" => "Doe",
23
- "country" => "AU",
24
- "company_name" => "DoeCorp"
11
+ 'mno_session' => 'f54sd54fd64fs5df4s3d48gf2',
12
+ 'mno_session_recheck' => Time.now.utc.iso8601,
13
+ 'group_uid' => 'cld-1',
14
+ 'group_name' => 'Some Group Name',
15
+ 'group_currency' => 'AUD',
16
+ 'group_timezone' => 'America/Los_Angeles',
17
+ 'group_email' => 'principal@maestrano.com',
18
+ 'group_end_free_trial' => Time.now.utc.iso8601,
19
+ 'group_role' => 'Admin',
20
+ 'group_country' => 'AU',
21
+ 'group_city' => 'Sydney',
22
+ 'uid' => "usr-1",
23
+ 'virtual_uid' => "usr-1.cld-1",
24
+ 'email' => "j.doe@doecorp.com",
25
+ 'virtual_email' => "usr-1.cld-1@mail.maestrano.com",
26
+ 'name' => "John",
27
+ "surname" => "Doe",
28
+ "country" => "AU",
29
+ "company_name" => "DoeCorp"
25
30
  })
26
31
  end
27
32
 
@@ -35,6 +40,12 @@ module Maestrano
35
40
  assert group.has_credit_card == (@saml_response.attributes['group_has_credit_card'] == 'true')
36
41
  assert group.free_trial_end_at == Time.iso8601(@saml_response.attributes['group_end_free_trial'])
37
42
  assert group.company_name == @saml_response.attributes['company_name']
43
+ assert group.name == @saml_response.attributes['group_name']
44
+ assert group.email == @saml_response.attributes['group_email']
45
+ assert group.currency == @saml_response.attributes['group_currency']
46
+ assert group.timezone == @saml_response.attributes['group_timezone']
47
+ assert group.city == @saml_response.attributes['group_city']
48
+ assert group.email == @saml_response.attributes['group_email']
38
49
  assert group.country == @saml_response.attributes['country']
39
50
  end
40
51
 
@@ -47,7 +58,12 @@ module Maestrano
47
58
  free_trial_end_at: sso_group.free_trial_end_at,
48
59
  company_name: sso_group.company_name,
49
60
  has_credit_card: sso_group.has_credit_card,
61
+ name: sso_group.name,
62
+ email: sso_group.email,
63
+ city: sso_group.city,
50
64
  country: sso_group.country,
65
+ timezone: sso_group.timezone,
66
+ currency: sso_group.currency
51
67
  },
52
68
  extra: {}
53
69
  }
@@ -11,8 +11,14 @@ module Maestrano
11
11
  'mno_session' => 'f54sd54fd64fs5df4s3d48gf2',
12
12
  'mno_session_recheck' => Time.now.utc.iso8601,
13
13
  'group_uid' => 'cld-1',
14
+ 'group_name' => 'Some Group Name',
15
+ 'group_currency' => 'AUD',
16
+ 'group_timezone' => 'America/Los_Angeles',
17
+ 'group_email' => 'principal@maestrano.com',
14
18
  'group_end_free_trial' => Time.now.utc.iso8601,
15
19
  'group_role' => 'Admin',
20
+ 'group_country' => 'AU',
21
+ 'group_city' => 'Sydney',
16
22
  'uid' => "usr-1",
17
23
  'virtual_uid' => "usr-1.cld-1",
18
24
  'email' => "j.doe@doecorp.com",
@@ -33,6 +39,7 @@ module Maestrano
33
39
  assert user.sso_session == @saml_response.attributes['mno_session']
34
40
  assert user.sso_session_recheck == Time.iso8601(@saml_response.attributes['mno_session_recheck'])
35
41
  assert user.group_uid == @saml_response.attributes['group_uid']
42
+ assert user.group_name == @saml_response.attributes['group_name']
36
43
  assert user.group_role == @saml_response.attributes['group_role']
37
44
  assert user.uid == @saml_response.attributes['uid']
38
45
  assert user.virtual_uid == @saml_response.attributes['virtual_uid']
@@ -65,6 +72,7 @@ module Maestrano
65
72
  virtual_email: sso_user.virtual_email,
66
73
  group: {
67
74
  uid: sso_user.group_uid,
75
+ name: sso_user.group_name,
68
76
  role: sso_user.group_role
69
77
  },
70
78
  session: {
@@ -97,6 +105,7 @@ module Maestrano
97
105
  virtual_email: sso_user.virtual_email,
98
106
  group: {
99
107
  uid: sso_user.group_uid,
108
+ name: sso_user.group_name,
100
109
  role: sso_user.group_role,
101
110
  },
102
111
  session: {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maestrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arnaud Lachaume
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-12 00:00:00.000000000 Z
11
+ date: 2015-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client