Module: IceJade::Quantum::Message

Defined in:
lib/ice_jade/quantum/message.rb

Overview

Message payload builders for Quantum IM webhook

Class Method Summary collapse

Class Method Details

.file(file_id) ⇒ Hash

File message

Parameters:

  • file_id (String)

    file id returned by upload API

Returns:

  • (Hash)

    message payload



46
47
48
49
50
51
# File 'lib/ice_jade/quantum/message.rb', line 46

def self.file(file_id)
  {
    type: 'file',
    fileMsg: { fileId: file_id }
  }
end

.image(file_id, height:, width:) ⇒ Hash

Image message

Parameters:

  • file_id (String)

    file id returned by upload API

  • height (Integer)

    image height

  • width (Integer)

    image width

Returns:

  • (Hash)

    message payload



32
33
34
35
36
37
38
39
40
41
# File 'lib/ice_jade/quantum/message.rb', line 32

def self.image(file_id, height:, width:)
  {
    type: 'image',
    imageMsg: {
      fileId: file_id,
      height: height,
      width:  width
    }
  }
end

.news(title, url, description: nil, pic_url: nil) ⇒ Hash

News / link card message

Parameters:

  • title (String)

    title, max 128 bytes

  • url (String)

    jump URL

  • description (String, nil) (defaults to: nil)

    description, max 512 bytes

  • pic_url (String, nil) (defaults to: nil)

    picture URL

Returns:

  • (Hash)

    message payload



59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/ice_jade/quantum/message.rb', line 59

def self.news(title, url, description: nil, pic_url: nil)
  payload = {
    type: 'news',
    news: {
      info: {
        title: title,
        url:   url
      }
    }
  }
  payload[:news][:info][:description] = description if description
  payload[:news][:info][:picUrl] = pic_url if pic_url
  payload
end

.text(content, mention_all: false, mentioned_mobiles: nil) ⇒ Hash

Text message

Parameters:

  • content (String)

    message content

  • mention_all (Boolean) (defaults to: false)

    @ everyone

  • mentioned_mobiles (Array<String>) (defaults to: nil)

    phone numbers to @

Returns:

  • (Hash)

    message payload



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/ice_jade/quantum/message.rb', line 12

def self.text(content, mention_all: false, mentioned_mobiles: nil)
  payload = { type: 'text', textMsg: { content: content } }

  if mention_all
    payload[:textMsg][:isMentioned] = true
    payload[:textMsg][:mentionType] = 1
  elsif mentioned_mobiles && !mentioned_mobiles.empty?
    payload[:textMsg][:isMentioned] = true
    payload[:textMsg][:mentionType] = 2
    payload[:textMsg][:mentionedMobileList] = mentioned_mobiles
  end

  payload
end