gonebusy-ruby-client 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +1963 -0
  4. data/lib/gonebusy/api_helper.rb +149 -0
  5. data/lib/gonebusy/configuration.rb +16 -0
  6. data/lib/gonebusy/controllers/base_controller.rb +45 -0
  7. data/lib/gonebusy/controllers/bookings_controller.rb +298 -0
  8. data/lib/gonebusy/controllers/categories_controller.rb +180 -0
  9. data/lib/gonebusy/controllers/pricing_models_controller.rb +241 -0
  10. data/lib/gonebusy/controllers/resources_controller.rb +355 -0
  11. data/lib/gonebusy/controllers/schedules_controller.rb +426 -0
  12. data/lib/gonebusy/controllers/search_controller.rb +64 -0
  13. data/lib/gonebusy/controllers/services_controller.rb +367 -0
  14. data/lib/gonebusy/controllers/users_controller.rb +288 -0
  15. data/lib/gonebusy/exceptions/api_exception.rb +16 -0
  16. data/lib/gonebusy/exceptions/entities_error_exception.rb +27 -0
  17. data/lib/gonebusy/gonebusy_client.rb +58 -0
  18. data/lib/gonebusy/http/auth/custom_auth.rb +16 -0
  19. data/lib/gonebusy/http/faraday_client.rb +41 -0
  20. data/lib/gonebusy/http/http_call_back.rb +17 -0
  21. data/lib/gonebusy/http/http_client.rb +82 -0
  22. data/lib/gonebusy/http/http_context.rb +15 -0
  23. data/lib/gonebusy/http/http_method_enum.rb +7 -0
  24. data/lib/gonebusy/http/http_request.rb +44 -0
  25. data/lib/gonebusy/http/http_response.rb +19 -0
  26. data/lib/gonebusy/models/base_model.rb +32 -0
  27. data/lib/gonebusy/models/cancel_booking_by_id_response.rb +35 -0
  28. data/lib/gonebusy/models/create_booking_body.rb +80 -0
  29. data/lib/gonebusy/models/create_booking_response.rb +35 -0
  30. data/lib/gonebusy/models/create_category_body.rb +71 -0
  31. data/lib/gonebusy/models/create_category_response.rb +35 -0
  32. data/lib/gonebusy/models/create_pricing_model_body.rb +80 -0
  33. data/lib/gonebusy/models/create_pricing_model_response.rb +35 -0
  34. data/lib/gonebusy/models/create_resource_body.rb +89 -0
  35. data/lib/gonebusy/models/create_resource_response.rb +35 -0
  36. data/lib/gonebusy/models/create_schedule_body.rb +144 -0
  37. data/lib/gonebusy/models/create_schedule_response.rb +35 -0
  38. data/lib/gonebusy/models/create_schedule_time_window_body.rb +117 -0
  39. data/lib/gonebusy/models/create_schedule_time_window_response.rb +35 -0
  40. data/lib/gonebusy/models/create_service_body.rb +98 -0
  41. data/lib/gonebusy/models/create_service_response.rb +35 -0
  42. data/lib/gonebusy/models/create_user_body.rb +89 -0
  43. data/lib/gonebusy/models/create_user_response.rb +35 -0
  44. data/lib/gonebusy/models/date_recurs_by_enum.rb +13 -0
  45. data/lib/gonebusy/models/delete_resource_by_id_response.rb +35 -0
  46. data/lib/gonebusy/models/delete_schedule_by_id_response.rb +35 -0
  47. data/lib/gonebusy/models/delete_schedule_time_window_by_id_response.rb +35 -0
  48. data/lib/gonebusy/models/delete_service_by_id_response.rb +35 -0
  49. data/lib/gonebusy/models/entities_address_entity.rb +116 -0
  50. data/lib/gonebusy/models/entities_availability_response.rb +58 -0
  51. data/lib/gonebusy/models/entities_booking_response.rb +71 -0
  52. data/lib/gonebusy/models/entities_category_response.rb +98 -0
  53. data/lib/gonebusy/models/entities_pricing_model_response.rb +89 -0
  54. data/lib/gonebusy/models/entities_resource_availabilities.rb +49 -0
  55. data/lib/gonebusy/models/entities_resource_response.rb +98 -0
  56. data/lib/gonebusy/models/entities_schedule_response.rb +76 -0
  57. data/lib/gonebusy/models/entities_search_response.rb +54 -0
  58. data/lib/gonebusy/models/entities_service_response.rb +116 -0
  59. data/lib/gonebusy/models/entities_slots.rb +45 -0
  60. data/lib/gonebusy/models/entities_thing_type_response.rb +44 -0
  61. data/lib/gonebusy/models/entities_time_window_response.rb +135 -0
  62. data/lib/gonebusy/models/entities_user_response.rb +152 -0
  63. data/lib/gonebusy/models/frequency_enum.rb +18 -0
  64. data/lib/gonebusy/models/gender_enum.rb +10 -0
  65. data/lib/gonebusy/models/get_booking_by_id_response.rb +35 -0
  66. data/lib/gonebusy/models/get_bookings_response.rb +40 -0
  67. data/lib/gonebusy/models/get_categories_response.rb +40 -0
  68. data/lib/gonebusy/models/get_category_by_id_response.rb +35 -0
  69. data/lib/gonebusy/models/get_pricing_model_by_id_response.rb +35 -0
  70. data/lib/gonebusy/models/get_pricing_models_response.rb +40 -0
  71. data/lib/gonebusy/models/get_resource_by_id_response.rb +35 -0
  72. data/lib/gonebusy/models/get_resource_things_response.rb +40 -0
  73. data/lib/gonebusy/models/get_resources_response.rb +40 -0
  74. data/lib/gonebusy/models/get_schedule_by_id_response.rb +35 -0
  75. data/lib/gonebusy/models/get_schedules_response.rb +40 -0
  76. data/lib/gonebusy/models/get_service_available_slots_by_id_response.rb +35 -0
  77. data/lib/gonebusy/models/get_service_by_id_response.rb +35 -0
  78. data/lib/gonebusy/models/get_services_response.rb +40 -0
  79. data/lib/gonebusy/models/get_user_by_id_response.rb +35 -0
  80. data/lib/gonebusy/models/get_users_pros_response.rb +40 -0
  81. data/lib/gonebusy/models/get_users_response.rb +40 -0
  82. data/lib/gonebusy/models/occurrence_enum.rb +22 -0
  83. data/lib/gonebusy/models/recurs_by_enum.rb +16 -0
  84. data/lib/gonebusy/models/search_query_response.rb +35 -0
  85. data/lib/gonebusy/models/update_booking_by_id_response.rb +35 -0
  86. data/lib/gonebusy/models/update_pricing_model_by_id_body.rb +62 -0
  87. data/lib/gonebusy/models/update_pricing_model_by_id_response.rb +35 -0
  88. data/lib/gonebusy/models/update_resource_by_id_body.rb +71 -0
  89. data/lib/gonebusy/models/update_resource_by_id_response.rb +35 -0
  90. data/lib/gonebusy/models/update_schedule_time_window_by_id_body.rb +117 -0
  91. data/lib/gonebusy/models/update_schedule_time_window_by_id_response.rb +35 -0
  92. data/lib/gonebusy/models/update_service_by_id_body.rb +89 -0
  93. data/lib/gonebusy/models/update_service_by_id_response.rb +35 -0
  94. data/lib/gonebusy/models/update_user_by_id_body.rb +89 -0
  95. data/lib/gonebusy/models/update_user_by_id_response.rb +35 -0
  96. data/lib/gonebusy.rb +105 -0
  97. metadata +186 -0
@@ -0,0 +1,35 @@
1
+ # This file was automatically generated for GoneBusy Inc. by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ module Gonebusy
4
+ class CreateScheduleResponse < BaseModel
5
+ # TODO: Write general description for this method
6
+ # @return [EntitiesScheduleResponse]
7
+ attr_accessor :schedule
8
+
9
+ # A mapping from model property names to API property names
10
+ def self.names
11
+ if @hash.nil?
12
+ @hash = {}
13
+ @hash["schedule"] = "schedule"
14
+ end
15
+ @hash
16
+ end
17
+
18
+ def initialize(schedule = nil)
19
+ @schedule = schedule
20
+ end
21
+
22
+ # Creates an instance of the object from a hash
23
+ def self.from_hash(hash)
24
+ if hash == nil
25
+ nil
26
+ else
27
+ # Extract variables from the hash
28
+ schedule = EntitiesScheduleResponse.from_hash(hash["schedule"]) if hash["schedule"]
29
+
30
+ # Create object from extracted values
31
+ CreateScheduleResponse.new(schedule)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,117 @@
1
+ # This file was automatically generated for GoneBusy Inc. by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ require 'date'
4
+ module Gonebusy
5
+ class CreateScheduleTimeWindowBody < BaseModel
6
+ # List of comma-separated days of the week this window of time falls on. If provided, at least one must be specified.
7
+ # @return [String]
8
+ attr_accessor :days
9
+
10
+ # End Time of TimeWindow. Several formats are supported: '5pm', '17:00', '1700'
11
+ # @return [String]
12
+ attr_accessor :end_time
13
+
14
+ # One of the possible recurrence values
15
+ # @return [RecursByEnum]
16
+ attr_accessor :recurs_by
17
+
18
+ # Start Date of TimeWindow. Several formats are supported: '2014-10-31', 'October 31, 2014'.
19
+ # @return [DateTime]
20
+ attr_accessor :start_date
21
+
22
+ # Start Time of TimeWindow. Several formats are supported: '9am', '09:00', '9:00', '0900'
23
+ # @return [String]
24
+ attr_accessor :start_time
25
+
26
+ # Required only when :recurs_by is 'monthly' or 'yearly' to differentiate between exact date or 'day in month/year'. See Schedule examples.
27
+ # @return [DateRecursByEnum]
28
+ attr_accessor :date_recurs_by
29
+
30
+ # Optional End Date of TimeWindow, leave blank for infinitely available. Several formats are supported: '2014-10-31', 'October 31, 2014'.
31
+ # @return [DateTime]
32
+ attr_accessor :end_date
33
+
34
+ # Optional frequency of recurrence as specified by :recurs_by. E.g, :single, :every, :every_other, etc. If not provided, assumed to be :every
35
+ # @return [FrequencyEnum]
36
+ attr_accessor :frequency
37
+
38
+ # Optional occurrence of frequency. E.g, :first, :2nd, :last, :2nd_to_last, etc. If not provided, assumed to be :every
39
+ # @return [OccurrenceEnum]
40
+ attr_accessor :occurrence
41
+
42
+ # Optional total number of minutes in TimeWindow. Useful when duration of window is greater than 24 hours.
43
+ # @return [Integer]
44
+ attr_accessor :total_minutes
45
+
46
+ # A mapping from model property names to API property names
47
+ def self.names
48
+ if @hash.nil?
49
+ @hash = {}
50
+ @hash["days"] = "days"
51
+ @hash["end_time"] = "end_time"
52
+ @hash["recurs_by"] = "recurs_by"
53
+ @hash["start_date"] = "start_date"
54
+ @hash["start_time"] = "start_time"
55
+ @hash["date_recurs_by"] = "date_recurs_by"
56
+ @hash["end_date"] = "end_date"
57
+ @hash["frequency"] = "frequency"
58
+ @hash["occurrence"] = "occurrence"
59
+ @hash["total_minutes"] = "total_minutes"
60
+ end
61
+ @hash
62
+ end
63
+
64
+ def initialize(days = nil,
65
+ end_time = nil,
66
+ recurs_by = nil,
67
+ start_date = nil,
68
+ start_time = nil,
69
+ date_recurs_by = nil,
70
+ end_date = nil,
71
+ frequency = nil,
72
+ occurrence = nil,
73
+ total_minutes = nil)
74
+ @days = days
75
+ @end_time = end_time
76
+ @recurs_by = recurs_by
77
+ @start_date = start_date
78
+ @start_time = start_time
79
+ @date_recurs_by = date_recurs_by
80
+ @end_date = end_date
81
+ @frequency = frequency
82
+ @occurrence = occurrence
83
+ @total_minutes = total_minutes
84
+ end
85
+
86
+ # Creates an instance of the object from a hash
87
+ def self.from_hash(hash)
88
+ if hash == nil
89
+ nil
90
+ else
91
+ # Extract variables from the hash
92
+ days = hash["days"]
93
+ end_time = hash["end_time"]
94
+ recurs_by = hash["recurs_by"]
95
+ start_date = DateTime.iso8601(hash["start_date"]) if hash["start_date"]
96
+ start_time = hash["start_time"]
97
+ date_recurs_by = hash["date_recurs_by"]
98
+ end_date = DateTime.iso8601(hash["end_date"]) if hash["end_date"]
99
+ frequency = hash["frequency"]
100
+ occurrence = hash["occurrence"]
101
+ total_minutes = hash["total_minutes"]
102
+
103
+ # Create object from extracted values
104
+ CreateScheduleTimeWindowBody.new(days,
105
+ end_time,
106
+ recurs_by,
107
+ start_date,
108
+ start_time,
109
+ date_recurs_by,
110
+ end_date,
111
+ frequency,
112
+ occurrence,
113
+ total_minutes)
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,35 @@
1
+ # This file was automatically generated for GoneBusy Inc. by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ module Gonebusy
4
+ class CreateScheduleTimeWindowResponse < BaseModel
5
+ # TODO: Write general description for this method
6
+ # @return [EntitiesScheduleResponse]
7
+ attr_accessor :schedule
8
+
9
+ # A mapping from model property names to API property names
10
+ def self.names
11
+ if @hash.nil?
12
+ @hash = {}
13
+ @hash["schedule"] = "schedule"
14
+ end
15
+ @hash
16
+ end
17
+
18
+ def initialize(schedule = nil)
19
+ @schedule = schedule
20
+ end
21
+
22
+ # Creates an instance of the object from a hash
23
+ def self.from_hash(hash)
24
+ if hash == nil
25
+ nil
26
+ else
27
+ # Extract variables from the hash
28
+ schedule = EntitiesScheduleResponse.from_hash(hash["schedule"]) if hash["schedule"]
29
+
30
+ # Create object from extracted values
31
+ CreateScheduleTimeWindowResponse.new(schedule)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,98 @@
1
+ # This file was automatically generated for GoneBusy Inc. by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ module Gonebusy
4
+ class CreateServiceBody < BaseModel
5
+ # Service Description
6
+ # @return [String]
7
+ attr_accessor :description
8
+
9
+ # Duration in minutes of the Service
10
+ # @return [Integer]
11
+ attr_accessor :duration
12
+
13
+ # Service Name
14
+ # @return [String]
15
+ attr_accessor :name
16
+
17
+ # Optional List of comma-separated Category IDs to associate with Service
18
+ # @return [String]
19
+ attr_accessor :categories
20
+
21
+ # Optional Price Model Id
22
+ # @return [Integer]
23
+ attr_accessor :price_model_id
24
+
25
+ # Optional List of comma-separated Resource IDs that will provide this Service, default: API user's resource id
26
+ # @return [String]
27
+ attr_accessor :resources
28
+
29
+ # Optional abbreviated Service name
30
+ # @return [String]
31
+ attr_accessor :short_name
32
+
33
+ # ID of User to create Service for. You must be authorized to manage this User Id.
34
+ # @return [Integer]
35
+ attr_accessor :user_id
36
+
37
+ # A mapping from model property names to API property names
38
+ def self.names
39
+ if @hash.nil?
40
+ @hash = {}
41
+ @hash["description"] = "description"
42
+ @hash["duration"] = "duration"
43
+ @hash["name"] = "name"
44
+ @hash["categories"] = "categories"
45
+ @hash["price_model_id"] = "price_model_id"
46
+ @hash["resources"] = "resources"
47
+ @hash["short_name"] = "short_name"
48
+ @hash["user_id"] = "user_id"
49
+ end
50
+ @hash
51
+ end
52
+
53
+ def initialize(description = nil,
54
+ duration = nil,
55
+ name = nil,
56
+ categories = nil,
57
+ price_model_id = nil,
58
+ resources = nil,
59
+ short_name = nil,
60
+ user_id = nil)
61
+ @description = description
62
+ @duration = duration
63
+ @name = name
64
+ @categories = categories
65
+ @price_model_id = price_model_id
66
+ @resources = resources
67
+ @short_name = short_name
68
+ @user_id = user_id
69
+ end
70
+
71
+ # Creates an instance of the object from a hash
72
+ def self.from_hash(hash)
73
+ if hash == nil
74
+ nil
75
+ else
76
+ # Extract variables from the hash
77
+ description = hash["description"]
78
+ duration = hash["duration"]
79
+ name = hash["name"]
80
+ categories = hash["categories"]
81
+ price_model_id = hash["price_model_id"]
82
+ resources = hash["resources"]
83
+ short_name = hash["short_name"]
84
+ user_id = hash["user_id"]
85
+
86
+ # Create object from extracted values
87
+ CreateServiceBody.new(description,
88
+ duration,
89
+ name,
90
+ categories,
91
+ price_model_id,
92
+ resources,
93
+ short_name,
94
+ user_id)
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,35 @@
1
+ # This file was automatically generated for GoneBusy Inc. by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ module Gonebusy
4
+ class CreateServiceResponse < BaseModel
5
+ # TODO: Write general description for this method
6
+ # @return [EntitiesServiceResponse]
7
+ attr_accessor :service
8
+
9
+ # A mapping from model property names to API property names
10
+ def self.names
11
+ if @hash.nil?
12
+ @hash = {}
13
+ @hash["service"] = "service"
14
+ end
15
+ @hash
16
+ end
17
+
18
+ def initialize(service = nil)
19
+ @service = service
20
+ end
21
+
22
+ # Creates an instance of the object from a hash
23
+ def self.from_hash(hash)
24
+ if hash == nil
25
+ nil
26
+ else
27
+ # Extract variables from the hash
28
+ service = EntitiesServiceResponse.from_hash(hash["service"]) if hash["service"]
29
+
30
+ # Create object from extracted values
31
+ CreateServiceResponse.new(service)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,89 @@
1
+ # This file was automatically generated for GoneBusy Inc. by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ module Gonebusy
4
+ class CreateUserBody < BaseModel
5
+ # User's email address
6
+ # @return [String]
7
+ attr_accessor :email
8
+
9
+ # Optional name for your Business/Organization
10
+ # @return [String]
11
+ attr_accessor :business_name
12
+
13
+ # Optional website URL
14
+ # @return [String]
15
+ attr_accessor :external_url
16
+
17
+ # Optional first name
18
+ # @return [String]
19
+ attr_accessor :first_name
20
+
21
+ # Optional last name
22
+ # @return [String]
23
+ attr_accessor :last_name
24
+
25
+ # Optional vanity url - ex: www.gonebusy.com/[permalink] - must be unique
26
+ # @return [String]
27
+ attr_accessor :permalink
28
+
29
+ # Optional timezone
30
+ # @return [String]
31
+ attr_accessor :timezone
32
+
33
+ # A mapping from model property names to API property names
34
+ def self.names
35
+ if @hash.nil?
36
+ @hash = {}
37
+ @hash["email"] = "email"
38
+ @hash["business_name"] = "business_name"
39
+ @hash["external_url"] = "external_url"
40
+ @hash["first_name"] = "first_name"
41
+ @hash["last_name"] = "last_name"
42
+ @hash["permalink"] = "permalink"
43
+ @hash["timezone"] = "timezone"
44
+ end
45
+ @hash
46
+ end
47
+
48
+ def initialize(email = nil,
49
+ business_name = nil,
50
+ external_url = nil,
51
+ first_name = nil,
52
+ last_name = nil,
53
+ permalink = nil,
54
+ timezone = nil)
55
+ @email = email
56
+ @business_name = business_name
57
+ @external_url = external_url
58
+ @first_name = first_name
59
+ @last_name = last_name
60
+ @permalink = permalink
61
+ @timezone = timezone
62
+ end
63
+
64
+ # Creates an instance of the object from a hash
65
+ def self.from_hash(hash)
66
+ if hash == nil
67
+ nil
68
+ else
69
+ # Extract variables from the hash
70
+ email = hash["email"]
71
+ business_name = hash["business_name"]
72
+ external_url = hash["external_url"]
73
+ first_name = hash["first_name"]
74
+ last_name = hash["last_name"]
75
+ permalink = hash["permalink"]
76
+ timezone = hash["timezone"]
77
+
78
+ # Create object from extracted values
79
+ CreateUserBody.new(email,
80
+ business_name,
81
+ external_url,
82
+ first_name,
83
+ last_name,
84
+ permalink,
85
+ timezone)
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,35 @@
1
+ # This file was automatically generated for GoneBusy Inc. by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ module Gonebusy
4
+ class CreateUserResponse < BaseModel
5
+ # TODO: Write general description for this method
6
+ # @return [EntitiesUserResponse]
7
+ attr_accessor :user
8
+
9
+ # A mapping from model property names to API property names
10
+ def self.names
11
+ if @hash.nil?
12
+ @hash = {}
13
+ @hash["user"] = "user"
14
+ end
15
+ @hash
16
+ end
17
+
18
+ def initialize(user = nil)
19
+ @user = user
20
+ end
21
+
22
+ # Creates an instance of the object from a hash
23
+ def self.from_hash(hash)
24
+ if hash == nil
25
+ nil
26
+ else
27
+ # Extract variables from the hash
28
+ user = EntitiesUserResponse.from_hash(hash["user"]) if hash["user"]
29
+
30
+ # Create object from extracted values
31
+ CreateUserResponse.new(user)
32
+ end
33
+ end
34
+ end
35
+ end