astroapi-ruby 1.0.0
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.
- checksums.yaml +7 -0
- data/lib/astroapi/categories/analysis.rb +219 -0
- data/lib/astroapi/categories/astrocartography.rb +119 -0
- data/lib/astroapi/categories/base_category.rb +30 -0
- data/lib/astroapi/categories/charts.rb +119 -0
- data/lib/astroapi/categories/chinese.rb +72 -0
- data/lib/astroapi/categories/data.rb +100 -0
- data/lib/astroapi/categories/eclipses.rb +40 -0
- data/lib/astroapi/categories/enhanced.rb +53 -0
- data/lib/astroapi/categories/fengshui.rb +44 -0
- data/lib/astroapi/categories/fixed_stars.rb +47 -0
- data/lib/astroapi/categories/glossary.rb +114 -0
- data/lib/astroapi/categories/horary.rb +58 -0
- data/lib/astroapi/categories/horoscope.rb +144 -0
- data/lib/astroapi/categories/human_design.rb +77 -0
- data/lib/astroapi/categories/insights/business.rb +62 -0
- data/lib/astroapi/categories/insights/financial.rb +62 -0
- data/lib/astroapi/categories/insights/pet.rb +53 -0
- data/lib/astroapi/categories/insights/relationship.rb +67 -0
- data/lib/astroapi/categories/insights/wellness.rb +67 -0
- data/lib/astroapi/categories/insights.rb +41 -0
- data/lib/astroapi/categories/kabbalah.rb +69 -0
- data/lib/astroapi/categories/lunar.rb +51 -0
- data/lib/astroapi/categories/numerology.rb +37 -0
- data/lib/astroapi/categories/palmistry.rb +44 -0
- data/lib/astroapi/categories/pdf.rb +47 -0
- data/lib/astroapi/categories/render.rb +47 -0
- data/lib/astroapi/categories/svg.rb +48 -0
- data/lib/astroapi/categories/tarot.rb +156 -0
- data/lib/astroapi/categories/traditional.rb +93 -0
- data/lib/astroapi/categories/vedic.rb +190 -0
- data/lib/astroapi/categories/ziwei.rb +25 -0
- data/lib/astroapi/client.rb +103 -0
- data/lib/astroapi/configuration.rb +44 -0
- data/lib/astroapi/error.rb +74 -0
- data/lib/astroapi/http/client.rb +108 -0
- data/lib/astroapi/http/middleware/authentication.rb +22 -0
- data/lib/astroapi/http/middleware/logger.rb +43 -0
- data/lib/astroapi/http/middleware/response_unwrapper.rb +25 -0
- data/lib/astroapi/validators/base_validator.rb +72 -0
- data/lib/astroapi/validators/subject_validator.rb +87 -0
- data/lib/astroapi/version.rb +5 -0
- data/lib/astroapi.rb +18 -0
- metadata +218 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base_category'
|
|
4
|
+
require_relative '../../validators/subject_validator'
|
|
5
|
+
|
|
6
|
+
module Astroapi
|
|
7
|
+
module Categories
|
|
8
|
+
module Insights
|
|
9
|
+
# Financial insights sub-client
|
|
10
|
+
class Financial < BaseCategory
|
|
11
|
+
# Get market timing
|
|
12
|
+
# @param request [Hash] Date range and market
|
|
13
|
+
# @return [Hash] Market timing analysis
|
|
14
|
+
def get_market_timing(request)
|
|
15
|
+
http.post(build_url('market-timing'), body: request)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Analyze personal trading
|
|
19
|
+
# @param request [Hash] Subject birth data
|
|
20
|
+
# @return [Hash] Personal trading style analysis
|
|
21
|
+
def analyze_personal_trading(request)
|
|
22
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
23
|
+
http.post(build_url('personal-trading'), body: request)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Get Gann analysis
|
|
27
|
+
# @param request [Hash] Market and date
|
|
28
|
+
# @return [Hash] W.D. Gann analysis
|
|
29
|
+
def get_gann_analysis(request)
|
|
30
|
+
http.post(build_url('gann-analysis'), body: request)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Get Bradley Siderograph
|
|
34
|
+
# @param request [Hash] Date range
|
|
35
|
+
# @return [Hash] Bradley Siderograph data
|
|
36
|
+
def get_bradley_siderograph(request)
|
|
37
|
+
http.post(build_url('bradley-siderograph'), body: request)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Get crypto timing
|
|
41
|
+
# @param request [Hash] Cryptocurrency and date range
|
|
42
|
+
# @return [Hash] Crypto timing analysis
|
|
43
|
+
def get_crypto_timing(request)
|
|
44
|
+
http.post(build_url('crypto-timing'), body: request)
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Get forex timing
|
|
48
|
+
# @param request [Hash] Currency pair and date range
|
|
49
|
+
# @return [Hash] Forex timing analysis
|
|
50
|
+
def get_forex_timing(request)
|
|
51
|
+
http.post(build_url('forex-timing'), body: request)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
protected
|
|
55
|
+
|
|
56
|
+
def api_prefix
|
|
57
|
+
'/api/v3/insights/financial'
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base_category'
|
|
4
|
+
|
|
5
|
+
module Astroapi
|
|
6
|
+
module Categories
|
|
7
|
+
module Insights
|
|
8
|
+
# Pet insights sub-client
|
|
9
|
+
class Pet < BaseCategory
|
|
10
|
+
# Get pet personality
|
|
11
|
+
# @param request [Hash] Pet birth data
|
|
12
|
+
# @return [Hash] Pet personality analysis
|
|
13
|
+
def get_personality(request)
|
|
14
|
+
http.post(build_url('personality'), body: request)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Get owner-pet compatibility
|
|
18
|
+
# @param request [Hash] Owner and pet birth data
|
|
19
|
+
# @return [Hash] Compatibility analysis
|
|
20
|
+
def get_compatibility(request)
|
|
21
|
+
http.post(build_url('compatibility'), body: request)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Get training windows
|
|
25
|
+
# @param request [Hash] Pet birth data and date range
|
|
26
|
+
# @return [Hash] Optimal training times
|
|
27
|
+
def get_training_windows(request)
|
|
28
|
+
http.post(build_url('training-windows'), body: request)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Get health sensitivities
|
|
32
|
+
# @param request [Hash] Pet birth data
|
|
33
|
+
# @return [Hash] Health sensitivity analysis
|
|
34
|
+
def get_health_sensitivities(request)
|
|
35
|
+
http.post(build_url('health-sensitivities'), body: request)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Get multi-pet dynamics
|
|
39
|
+
# @param request [Hash] Multiple pets' birth data
|
|
40
|
+
# @return [Hash] Multi-pet interaction analysis
|
|
41
|
+
def get_multi_pet_dynamics(request)
|
|
42
|
+
http.post(build_url('multi-pet-dynamics'), body: request)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
protected
|
|
46
|
+
|
|
47
|
+
def api_prefix
|
|
48
|
+
'/api/v3/insights/pet'
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base_category'
|
|
4
|
+
|
|
5
|
+
module Astroapi
|
|
6
|
+
module Categories
|
|
7
|
+
module Insights
|
|
8
|
+
# Relationship insights sub-client
|
|
9
|
+
class Relationship < BaseCategory
|
|
10
|
+
# Get compatibility
|
|
11
|
+
# @param request [Hash] Two subjects' birth data
|
|
12
|
+
# @return [Hash] Compatibility analysis
|
|
13
|
+
def get_compatibility(request)
|
|
14
|
+
http.post(build_url('compatibility'), body: request)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Get compatibility score
|
|
18
|
+
# @param request [Hash] Two subjects' birth data
|
|
19
|
+
# @return [Hash] Numeric compatibility score
|
|
20
|
+
def get_compatibility_score(request)
|
|
21
|
+
http.post(build_url('compatibility-score'), body: request)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Get love languages
|
|
25
|
+
# @param request [Hash] Two subjects' birth data
|
|
26
|
+
# @return [Hash] Love language analysis
|
|
27
|
+
def get_love_languages(request)
|
|
28
|
+
http.post(build_url('love-languages'), body: request)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Get Davison report
|
|
32
|
+
# @param request [Hash] Two subjects' birth data
|
|
33
|
+
# @return [Hash] Davison relationship chart
|
|
34
|
+
def get_davison_report(request)
|
|
35
|
+
http.post(build_url('davison'), body: request)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Get timing
|
|
39
|
+
# @param request [Hash] Two subjects and date range
|
|
40
|
+
# @return [Hash] Relationship timing analysis
|
|
41
|
+
def get_timing(request)
|
|
42
|
+
http.post(build_url('timing'), body: request)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Get red flags
|
|
46
|
+
# @param request [Hash] Two subjects' birth data
|
|
47
|
+
# @return [Hash] Potential relationship challenges
|
|
48
|
+
def get_red_flags(request)
|
|
49
|
+
http.post(build_url('red-flags'), body: request)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Discover relationship insights
|
|
53
|
+
# @param params [Hash] Query parameters
|
|
54
|
+
# @return [Hash] Available relationship insights
|
|
55
|
+
def discover(params = {})
|
|
56
|
+
http.get(build_url, params: params)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
protected
|
|
60
|
+
|
|
61
|
+
def api_prefix
|
|
62
|
+
'/api/v3/insights/relationship'
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../base_category'
|
|
4
|
+
require_relative '../../validators/subject_validator'
|
|
5
|
+
|
|
6
|
+
module Astroapi
|
|
7
|
+
module Categories
|
|
8
|
+
module Insights
|
|
9
|
+
# Wellness insights sub-client
|
|
10
|
+
class Wellness < BaseCategory
|
|
11
|
+
# Get body mapping
|
|
12
|
+
# @param request [Hash] Subject birth data
|
|
13
|
+
# @return [Hash] Body-astrology correspondences
|
|
14
|
+
def get_body_mapping(request)
|
|
15
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
16
|
+
http.post(build_url('body-mapping'), body: request)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Get biorhythms
|
|
20
|
+
# @param request [Hash] Subject and date range
|
|
21
|
+
# @return [Hash] Physical/emotional/intellectual cycles
|
|
22
|
+
def get_biorhythms(request)
|
|
23
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
24
|
+
http.post(build_url('biorhythms'), body: request)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Get wellness timing
|
|
28
|
+
# @param request [Hash] Subject and date range
|
|
29
|
+
# @return [Hash] Optimal wellness activity timing
|
|
30
|
+
def get_wellness_timing(request)
|
|
31
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
32
|
+
http.post(build_url('wellness-timing'), body: request)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Get energy patterns
|
|
36
|
+
# @param request [Hash] Subject birth data
|
|
37
|
+
# @return [Hash] Energy level patterns
|
|
38
|
+
def get_energy_patterns(request)
|
|
39
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
40
|
+
http.post(build_url('energy-patterns'), body: request)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Get wellness score
|
|
44
|
+
# @param request [Hash] Subject and current date
|
|
45
|
+
# @return [Hash] Current wellness score
|
|
46
|
+
def get_wellness_score(request)
|
|
47
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
48
|
+
http.post(build_url('wellness-score'), body: request)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Get moon wellness
|
|
52
|
+
# @param request [Hash] Subject and lunar phase
|
|
53
|
+
# @return [Hash] Lunar wellness recommendations
|
|
54
|
+
def get_moon_wellness(request)
|
|
55
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
56
|
+
http.post(build_url('moon-wellness'), body: request)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
protected
|
|
60
|
+
|
|
61
|
+
def api_prefix
|
|
62
|
+
'/api/v3/insights/wellness'
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_category'
|
|
4
|
+
require_relative 'insights/relationship'
|
|
5
|
+
require_relative 'insights/pet'
|
|
6
|
+
require_relative 'insights/wellness'
|
|
7
|
+
require_relative 'insights/financial'
|
|
8
|
+
require_relative 'insights/business'
|
|
9
|
+
|
|
10
|
+
module Astroapi
|
|
11
|
+
module Categories
|
|
12
|
+
# Insights category client with specialized sub-clients
|
|
13
|
+
class InsightsCategory < BaseCategory
|
|
14
|
+
attr_reader :relationship, :pet, :wellness, :financial, :business
|
|
15
|
+
|
|
16
|
+
def initialize(http_client)
|
|
17
|
+
super(http_client)
|
|
18
|
+
|
|
19
|
+
# Initialize sub-clients
|
|
20
|
+
@relationship = Insights::Relationship.new(http_client)
|
|
21
|
+
@pet = Insights::Pet.new(http_client)
|
|
22
|
+
@wellness = Insights::Wellness.new(http_client)
|
|
23
|
+
@financial = Insights::Financial.new(http_client)
|
|
24
|
+
@business = Insights::Business.new(http_client)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Discover available insights
|
|
28
|
+
# @param params [Hash] Query parameters
|
|
29
|
+
# @return [Hash] List of available insights
|
|
30
|
+
def discover(params = {})
|
|
31
|
+
http.get(build_url, params: params)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
protected
|
|
35
|
+
|
|
36
|
+
def api_prefix
|
|
37
|
+
'/api/v3/insights'
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_category'
|
|
4
|
+
require_relative '../validators/subject_validator'
|
|
5
|
+
|
|
6
|
+
module Astroapi
|
|
7
|
+
module Categories
|
|
8
|
+
# Kabbalah category client
|
|
9
|
+
class Kabbalah < BaseCategory
|
|
10
|
+
# Get birth angels
|
|
11
|
+
# @param request [Hash] Subject birth data
|
|
12
|
+
# @return [Hash] Guardian angels based on birth
|
|
13
|
+
def get_birth_angels(request)
|
|
14
|
+
Validators::SubjectValidator.validate!(request)
|
|
15
|
+
http.post(build_url('birth-angels'), body: request)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Calculate gematria
|
|
19
|
+
# @param request [Hash] Name or text for analysis
|
|
20
|
+
# @return [Hash] Gematria calculation
|
|
21
|
+
def calculate_gematria(request)
|
|
22
|
+
http.post(build_url('gematria'), body: request)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Get tikkun
|
|
26
|
+
# @param request [Hash] Subject birth data
|
|
27
|
+
# @return [Hash] Soul correction analysis
|
|
28
|
+
def get_tikkun(request)
|
|
29
|
+
Validators::SubjectValidator.validate!(request)
|
|
30
|
+
http.post(build_url('tikkun'), body: request)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Get Tree of Life chart
|
|
34
|
+
# @param request [Hash] Subject birth data
|
|
35
|
+
# @return [Hash] Kabbalistic Tree of Life mapping
|
|
36
|
+
def get_tree_of_life_chart(request)
|
|
37
|
+
Validators::SubjectValidator.validate!(request)
|
|
38
|
+
http.post(build_url('tree-of-life-chart'), body: request)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Get 72 Angels glossary
|
|
42
|
+
# @param params [Hash] Query parameters
|
|
43
|
+
# @return [Hash] Angels reference
|
|
44
|
+
def get_angels_glossary(params = {})
|
|
45
|
+
http.get(build_url('glossary', 'angels-72'), params: params)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Get Hebrew letters glossary
|
|
49
|
+
# @param params [Hash] Query parameters
|
|
50
|
+
# @return [Hash] Hebrew letters reference
|
|
51
|
+
def get_hebrew_letters_glossary(params = {})
|
|
52
|
+
http.get(build_url('glossary', 'hebrew-letters'), params: params)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Get Sephiroth glossary
|
|
56
|
+
# @param params [Hash] Query parameters
|
|
57
|
+
# @return [Hash] Sephiroth reference
|
|
58
|
+
def get_sephiroth_glossary(params = {})
|
|
59
|
+
http.get(build_url('glossary', 'sephiroth'), params: params)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
protected
|
|
63
|
+
|
|
64
|
+
def api_prefix
|
|
65
|
+
'/api/v3/kabbalah'
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_category'
|
|
4
|
+
|
|
5
|
+
module Astroapi
|
|
6
|
+
module Categories
|
|
7
|
+
# Lunar category client for Moon phases and lunar data
|
|
8
|
+
class Lunar < BaseCategory
|
|
9
|
+
# Get moon phases in date range
|
|
10
|
+
# @param request [Hash] Date range
|
|
11
|
+
# @return [Hash] Moon phases
|
|
12
|
+
def get_phases(request)
|
|
13
|
+
http.post(build_url('phases'), body: request)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Get lunar events
|
|
17
|
+
# @param request [Hash] Date range
|
|
18
|
+
# @return [Hash] Lunar ingresses and aspects
|
|
19
|
+
def get_events(request)
|
|
20
|
+
http.post(build_url('events'), body: request)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Get lunar mansions
|
|
24
|
+
# @param request [Hash] Date and location
|
|
25
|
+
# @return [Hash] 28 lunar mansions
|
|
26
|
+
def get_mansions(request)
|
|
27
|
+
http.post(build_url('mansions'), body: request)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Get void of course periods
|
|
31
|
+
# @param request [Hash] Date range
|
|
32
|
+
# @return [Hash] Void-of-course periods
|
|
33
|
+
def get_void_of_course(request)
|
|
34
|
+
http.post(build_url('void-of-course'), body: request)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Get annual lunar calendar
|
|
38
|
+
# @param year [Integer] Year
|
|
39
|
+
# @return [Hash] Lunar calendar
|
|
40
|
+
def get_calendar(year)
|
|
41
|
+
http.get(build_url('calendar', year.to_s))
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
protected
|
|
45
|
+
|
|
46
|
+
def api_prefix
|
|
47
|
+
'/api/v3/lunar'
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_category'
|
|
4
|
+
|
|
5
|
+
module Astroapi
|
|
6
|
+
module Categories
|
|
7
|
+
# Numerology category client for numerology calculations
|
|
8
|
+
class Numerology < BaseCategory
|
|
9
|
+
# Get core numbers
|
|
10
|
+
# @param request [Hash] Name and birth data
|
|
11
|
+
# @return [Hash] Life Path, Expression, Soul Urge
|
|
12
|
+
def get_core_numbers(request)
|
|
13
|
+
http.post(build_url('core-numbers'), body: request)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Get comprehensive report
|
|
17
|
+
# @param request [Hash] Name and birth data
|
|
18
|
+
# @return [Hash] Full numerology report
|
|
19
|
+
def get_comprehensive_report(request)
|
|
20
|
+
http.post(build_url('comprehensive'), body: request)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Analyze compatibility
|
|
24
|
+
# @param request [Hash] Two people's names and birth data
|
|
25
|
+
# @return [Hash] Numerology compatibility
|
|
26
|
+
def analyze_compatibility(request)
|
|
27
|
+
http.post(build_url('compatibility'), body: request)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
protected
|
|
31
|
+
|
|
32
|
+
def api_prefix
|
|
33
|
+
'/api/v3/numerology'
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_category'
|
|
4
|
+
|
|
5
|
+
module Astroapi
|
|
6
|
+
module Categories
|
|
7
|
+
# Palmistry category client
|
|
8
|
+
class Palmistry < BaseCategory
|
|
9
|
+
# Palm analysis (raw data)
|
|
10
|
+
# @param request [Hash] Palm image or data
|
|
11
|
+
# @return [Hash] Raw palm analysis data
|
|
12
|
+
def analyze(request)
|
|
13
|
+
http.post(build_url('analysis'), body: request)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Palm reading (full interpretation)
|
|
17
|
+
# @param request [Hash] Palm image or data
|
|
18
|
+
# @return [Hash] Full palm reading
|
|
19
|
+
def get_reading(request)
|
|
20
|
+
http.post(build_url('reading'), body: request)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Palm-astrology integration
|
|
24
|
+
# @param request [Hash] Palm data and birth data
|
|
25
|
+
# @return [Hash] Combined palm-astrology analysis
|
|
26
|
+
def get_astro_integration(request)
|
|
27
|
+
http.post(build_url('astro'), body: request)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Palm compatibility analysis
|
|
31
|
+
# @param request [Hash] Two palms data
|
|
32
|
+
# @return [Hash] Compatibility analysis
|
|
33
|
+
def get_compatibility(request)
|
|
34
|
+
http.post(build_url('compatibility'), body: request)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
protected
|
|
38
|
+
|
|
39
|
+
def api_prefix
|
|
40
|
+
'/api/v3/palmistry'
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_category'
|
|
4
|
+
require_relative '../validators/subject_validator'
|
|
5
|
+
|
|
6
|
+
module Astroapi
|
|
7
|
+
module Categories
|
|
8
|
+
# PDF generation category client
|
|
9
|
+
class Pdf < BaseCategory
|
|
10
|
+
# Generate natal report PDF
|
|
11
|
+
# @param request [Hash] Subject birth data
|
|
12
|
+
# @return [Hash] PDF generation result
|
|
13
|
+
def generate_natal_report(request)
|
|
14
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
15
|
+
http.post(build_url('natal-report'), body: request)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Generate daily horoscope PDF
|
|
19
|
+
# @param request [Hash] Sign and date
|
|
20
|
+
# @return [Hash] PDF generation result
|
|
21
|
+
def generate_daily_horoscope(request)
|
|
22
|
+
http.post(build_url('horoscope', 'daily'), body: request)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Generate weekly horoscope PDF
|
|
26
|
+
# @param request [Hash] Sign and date range
|
|
27
|
+
# @return [Hash] PDF generation result
|
|
28
|
+
def generate_weekly_horoscope(request)
|
|
29
|
+
http.post(build_url('horoscope', 'weekly'), body: request)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Get daily horoscope data
|
|
33
|
+
# @param sign [String] Zodiac sign
|
|
34
|
+
# @param target_date [String] Target date
|
|
35
|
+
# @return [Hash] Horoscope data for PDF
|
|
36
|
+
def get_horoscope_data(sign, target_date)
|
|
37
|
+
http.get(build_url('horoscope', 'data', sign, target_date))
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
protected
|
|
41
|
+
|
|
42
|
+
def api_prefix
|
|
43
|
+
'/api/v3/pdf'
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_category'
|
|
4
|
+
require_relative '../validators/subject_validator'
|
|
5
|
+
|
|
6
|
+
module Astroapi
|
|
7
|
+
module Categories
|
|
8
|
+
# Chart rendering category client (PNG images)
|
|
9
|
+
class Render < BaseCategory
|
|
10
|
+
# Render natal chart
|
|
11
|
+
# @param request [Hash] Subject birth data and render options
|
|
12
|
+
# @return [Hash] Rendered chart image data
|
|
13
|
+
def render_natal(request)
|
|
14
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
15
|
+
http.post(build_url('natal'), body: request)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Render synastry chart
|
|
19
|
+
# @param request [Hash] Two subjects' birth data and render options
|
|
20
|
+
# @return [Hash] Rendered synastry chart
|
|
21
|
+
def render_synastry(request)
|
|
22
|
+
http.post(build_url('synastry'), body: request)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Render composite chart
|
|
26
|
+
# @param request [Hash] Two subjects' birth data and render options
|
|
27
|
+
# @return [Hash] Rendered composite chart
|
|
28
|
+
def render_composite(request)
|
|
29
|
+
http.post(build_url('composite'), body: request)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Render transit chart
|
|
33
|
+
# @param request [Hash] Subject and transit data with render options
|
|
34
|
+
# @return [Hash] Rendered transit chart
|
|
35
|
+
def render_transit(request)
|
|
36
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
37
|
+
http.post(build_url('transit'), body: request)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
protected
|
|
41
|
+
|
|
42
|
+
def api_prefix
|
|
43
|
+
'/api/v3/render'
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_category'
|
|
4
|
+
require_relative '../validators/subject_validator'
|
|
5
|
+
|
|
6
|
+
module Astroapi
|
|
7
|
+
module Categories
|
|
8
|
+
# SVG category client for SVG chart image generation
|
|
9
|
+
# Note: Returns SVG strings (text), not JSON
|
|
10
|
+
class Svg < BaseCategory
|
|
11
|
+
# Get natal chart SVG
|
|
12
|
+
# @param request [Hash] Subject birth data and options
|
|
13
|
+
# @return [String] SVG chart as text
|
|
14
|
+
def get_natal_chart_svg(request)
|
|
15
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
16
|
+
http.post(build_url('natal'), body: request)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Get synastry chart SVG
|
|
20
|
+
# @param request [Hash] Two subjects' birth data and options
|
|
21
|
+
# @return [String] SVG chart as text
|
|
22
|
+
def get_synastry_chart_svg(request)
|
|
23
|
+
http.post(build_url('synastry'), body: request)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Get composite chart SVG
|
|
27
|
+
# @param request [Hash] Two subjects' birth data and options
|
|
28
|
+
# @return [String] SVG chart as text
|
|
29
|
+
def get_composite_chart_svg(request)
|
|
30
|
+
http.post(build_url('composite'), body: request)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Get transit chart SVG
|
|
34
|
+
# @param request [Hash] Subject, transit date and options
|
|
35
|
+
# @return [String] SVG chart as text
|
|
36
|
+
def get_transit_chart_svg(request)
|
|
37
|
+
Validators::SubjectValidator.validate!(request[:subject] || request['subject'])
|
|
38
|
+
http.post(build_url('transit'), body: request)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
protected
|
|
42
|
+
|
|
43
|
+
def api_prefix
|
|
44
|
+
'/api/v3/svg'
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|