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



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

def (inquiry)
  { account_id: inquiry. }
end

.address(inquiry) ⇒ Object



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

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
38
# 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,
    :period_formatted,
    :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



159
160
161
162
163
164
165
166
167
168
169
170
# File 'app/serializers/lease/inquiry_serializer.rb', line 159

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



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

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

.created_at(inquiry) ⇒ Object



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

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

.created_at_full(inquiry) ⇒ Object



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

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

.duration(inquiry) ⇒ Object



127
128
129
130
131
132
133
134
135
136
137
# File 'app/serializers/lease/inquiry_serializer.rb', line 127

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



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

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

.from(inquiry) ⇒ Object



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

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

.guests(inquiry) ⇒ Object



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

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

.id(inquiry) ⇒ Object



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

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

.is_my_price(inquiry) ⇒ Object



147
148
149
# File 'app/serializers/lease/inquiry_serializer.rb', line 147

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

.is_skippered(inquiry) ⇒ Object



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

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

.kids(inquiry) ⇒ Object



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

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

.latitude(inquiry) ⇒ Object



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

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

.longitude(inquiry) ⇒ Object



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

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

.my_price(inquiry) ⇒ Object



151
152
153
# File 'app/serializers/lease/inquiry_serializer.rb', line 151

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

.my_price_currency(inquiry) ⇒ Object



155
156
157
# File 'app/serializers/lease/inquiry_serializer.rb', line 155

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

.name(inquiry) ⇒ Object



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

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

.need_transfer(inquiry) ⇒ Object



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

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

.period(inquiry) ⇒ Object



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

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

.period_formatted(inquiry) ⇒ Object



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

def period_formatted(inquiry)
  frm = format_date(inquiry.from, @opts[:locale], false, true)
  tto = format_date(inquiry.to, @opts[:locale], false, true)

  { period: {
      from: frm,
      to:   tto
    }
  }
end

.phone_number(inquiry) ⇒ Object



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

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

.state(inquiry) ⇒ Object



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

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

.to(inquiry) ⇒ Object



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

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

.token(inquiry) ⇒ Object



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

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

.watersports(inquiry) ⇒ Object



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

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