Class: Lease::InquirySerializer

Inherits:
AbstractSerializer show all
Extended by:
Site::TimeHelper
Defined in:
app/serializers/lease/inquiry_serializer.rb

Class Method Summary collapse

Methods included from Site::TimeHelper

format_date, locale_date_format, next_hour

Methods inherited from AbstractSerializer

opts, serialize

Class Method Details

.account_id(inquiry) ⇒ Object



43
44
45
# File 'app/serializers/lease/inquiry_serializer.rb', line 43

def (inquiry)
  { account_id: inquiry. }
end

.address(inquiry) ⇒ Object



87
88
89
# File 'app/serializers/lease/inquiry_serializer.rb', line 87

def address(inquiry)
  { address: inquiry.address }
end

.available_attributesObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/serializers/lease/inquiry_serializer.rb', line 8

def available_attributes
  [
    :id,
    :token,
    :account_id,
    :state,
    :is_skippered,
    :is_my_price,
    :my_price,
    :my_price_currency,
    :address,
    :latitude,
    :longitude,
    :period,
    :duration,
    :from,
    :to,
    :guests,
    :kids,
    :watersports,
    :need_transfer,
    :email,
    :name,
    :phone_number,
    :comments,
    :created_at,
    :created_at_full,
    :boat_types
  ].freeze
end

.boat_types(inquiry) ⇒ Object



147
148
149
150
151
152
153
154
155
156
157
158
# File 'app/serializers/lease/inquiry_serializer.rb', line 147

def boat_types(inquiry)
  boat_types = BoatType.where(id: inquiry.boat_type_ids).includes(:translations)
  {
    boat_types: boat_types.map do |bt|
      {
        id:   bt.id,
        name: bt.name,
        icon: bt.icon.url
      }
    end
  }
end

.comments(inquiry) ⇒ Object



75
76
77
# File 'app/serializers/lease/inquiry_serializer.rb', line 75

def comments(inquiry)
  { comments: inquiry.comments }
end

.created_at(inquiry) ⇒ Object



79
80
81
# File 'app/serializers/lease/inquiry_serializer.rb', line 79

def created_at(inquiry)
  { created_at: format_date(inquiry.created_at, @opts[:locale]) }
end

.created_at_full(inquiry) ⇒ Object



83
84
85
# File 'app/serializers/lease/inquiry_serializer.rb', line 83

def created_at_full(inquiry)
  { created_at_full: format_date(inquiry.created_at, @opts[:locale], true) }
end

.duration(inquiry) ⇒ Object



115
116
117
118
119
120
121
122
123
124
125
# File 'app/serializers/lease/inquiry_serializer.rb', line 115

def duration(inquiry)
  distance = (inquiry.to - inquiry.from).to_i / 24 / 60 / 60
  distance = distance.zero? ? 1 : distance
  uom      = I18n.t('activerecord.labels.lease/bid.day', count: distance)
  {
    duration: {
      distance: distance,
      uom:      uom
    }
  }
end

.email(inquiry) ⇒ Object



99
100
101
# File 'app/serializers/lease/inquiry_serializer.rb', line 99

def email(inquiry)
  { email: inquiry...user.email }
end

.from(inquiry) ⇒ Object



127
128
129
# File 'app/serializers/lease/inquiry_serializer.rb', line 127

def from(inquiry)
  { from: format_date(inquiry.from, @opts[:locale]) }
end

.guests(inquiry) ⇒ Object



59
60
61
# File 'app/serializers/lease/inquiry_serializer.rb', line 59

def guests(inquiry)
  { guests: inquiry.guests }
end

.id(inquiry) ⇒ Object



39
40
41
# File 'app/serializers/lease/inquiry_serializer.rb', line 39

def id(inquiry)
  { id: inquiry.id }
end

.is_my_price(inquiry) ⇒ Object



135
136
137
# File 'app/serializers/lease/inquiry_serializer.rb', line 135

def is_my_price(inquiry)
  { is_my_price: inquiry.is_my_price }
end

.is_skippered(inquiry) ⇒ Object



55
56
57
# File 'app/serializers/lease/inquiry_serializer.rb', line 55

def is_skippered(inquiry)
  { is_skippered: inquiry.is_skippered }
end

.kids(inquiry) ⇒ Object



63
64
65
# File 'app/serializers/lease/inquiry_serializer.rb', line 63

def kids(inquiry)
  { kids: inquiry.kids }
end

.latitude(inquiry) ⇒ Object



91
92
93
# File 'app/serializers/lease/inquiry_serializer.rb', line 91

def latitude(inquiry)
  { latitude: inquiry.latitude.to_f }
end

.longitude(inquiry) ⇒ Object



95
96
97
# File 'app/serializers/lease/inquiry_serializer.rb', line 95

def longitude(inquiry)
  { longitude: inquiry.longitude.to_f }
end

.my_price(inquiry) ⇒ Object



139
140
141
# File 'app/serializers/lease/inquiry_serializer.rb', line 139

def my_price(inquiry)
  { my_price: inquiry.my_price }
end

.my_price_currency(inquiry) ⇒ Object



143
144
145
# File 'app/serializers/lease/inquiry_serializer.rb', line 143

def my_price_currency(inquiry)
  { my_price_currency: inquiry.my_price_currency }
end

.name(inquiry) ⇒ Object



103
104
105
# File 'app/serializers/lease/inquiry_serializer.rb', line 103

def name(inquiry)
  { name: inquiry.name }
end

.need_transfer(inquiry) ⇒ Object



71
72
73
# File 'app/serializers/lease/inquiry_serializer.rb', line 71

def need_transfer(inquiry)
  { need_transfer: inquiry.need_transfer }
end

.period(inquiry) ⇒ Object



111
112
113
# File 'app/serializers/lease/inquiry_serializer.rb', line 111

def period(inquiry)
  { period: '%s - %s' % [from(inquiry)[:from], to(inquiry)[:to]] }
end

.phone_number(inquiry) ⇒ Object



107
108
109
# File 'app/serializers/lease/inquiry_serializer.rb', line 107

def phone_number(inquiry)
  { phone_number: inquiry.phone_number }
end

.state(inquiry) ⇒ Object



47
48
49
# File 'app/serializers/lease/inquiry_serializer.rb', line 47

def state(inquiry)
  { state: inquiry.state }
end

.to(inquiry) ⇒ Object



131
132
133
# File 'app/serializers/lease/inquiry_serializer.rb', line 131

def to(inquiry)
  { to: format_date(inquiry.to, @opts[:locale]) }
end

.token(inquiry) ⇒ Object



51
52
53
# File 'app/serializers/lease/inquiry_serializer.rb', line 51

def token(inquiry)
  { token: inquiry.token }
end

.watersports(inquiry) ⇒ Object



67
68
69
# File 'app/serializers/lease/inquiry_serializer.rb', line 67

def watersports(inquiry)
  { watersports: inquiry.watersports }
end