gonebusy-ruby-client 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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