packages feed

line-4.0.0: test/Line/Messaging/Webhook/TypesSpecHelper.hs

{-# LANGUAGE QuasiQuotes #-}

module Line.Messaging.Webhook.TypesSpecHelper where

import Text.RawString.QQ
import qualified Data.ByteString.Lazy as BL

goodBody :: BL.ByteString
goodBody = [r|
{ "events": [] }
|]

badBody :: BL.ByteString
badBody = [r|
{ "event": [] }
|]

goodUser :: BL.ByteString
goodUser = [r|
{ "type": "user", "userId": "123" }
|]

goodGroup :: BL.ByteString
goodGroup = [r|
{ "type": "group", "groupId": "456" }
|]

goodRoom :: BL.ByteString
goodRoom = [r|
{ "type": "room", "roomId": "789" }
|]

goodGroupWithUserId :: BL.ByteString
goodGroupWithUserId = [r|
{ "type": "group", "groupId": "456", "userId": "789" }
|]

goodRoomWithUserId :: BL.ByteString
goodRoomWithUserId = [r|
{ "type": "room", "roomId": "789", "userId": "456" }
|]

badSource :: BL.ByteString
badSource = [r|
{ "type": "bad", "userId": "123 }
|]

goodTextMessage :: BL.ByteString
goodTextMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "text",
    "text": "Hello, world"
  }
}
] }
|]

badTextMessage :: BL.ByteString
badTextMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "text'",
    "text": "Hello, world"
  }
}
] }
|]

goodImageMessage :: BL.ByteString
goodImageMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "image"
  }
}

] }
|]

badImageMessage :: BL.ByteString
badImageMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "image'"
  }
}
] }
|]

goodVideoMessage :: BL.ByteString
goodVideoMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "video"
  }
}
] }
|]

badVideoMessage :: BL.ByteString
badVideoMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "video'"
  }
}
] }
|]

goodAudioMessage :: BL.ByteString
goodAudioMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "audio"
  }
}
] }
|]

badAudioMessage :: BL.ByteString
badAudioMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "audio'"
  }
}
] }
|]

goodFileMessage :: BL.ByteString
goodFileMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "file",
    "fileName": "hello.txt",
    "fileSize": "1234"
  }
}
] }
|]

badFileMessage :: BL.ByteString
badFileMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "file'",
    "fileName": "hello.txt",
    "fileSize": "1234"
  }
}
] }
|]

goodLocationMessage :: BL.ByteString
goodLocationMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "location",
    "title": "my location",
    "address": "some address",
    "latitude": 35.65910807942215,
    "longitude": 139.70372892916203
  }
}
] }
|]

badLocationMessage :: BL.ByteString
badLocationMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id'": "325708",
    "type": "location",
    "title": "my location",
    "address": "〒150-0002 東京都渋谷区渋谷2丁目21−1",
    "latitude": 35.65910807942215,
    "longitude": 139.70372892916203
  }
}
] }
|]

goodStickerMessage :: BL.ByteString
goodStickerMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message": {
    "id": "325708",
    "type": "sticker",
    "packageId": "1",
    "stickerId": "1"
  }
}
] }
|]

badStickerMessage :: BL.ByteString
badStickerMessage = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "message",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "message'": {
    "id": "325708",
    "type": "sticker",
    "packageId": "1",
    "stickerId": "1"
  }
}
] }
|]

goodFollow :: BL.ByteString
goodFollow = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "follow",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  }
}
] }
|]

badFollow :: BL.ByteString
badFollow = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "follow'",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  }
}
] }
|]

goodUnfollow :: BL.ByteString
goodUnfollow = [r|
{ "events": [
{
  "type": "unfollow",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  }
}
] }
|]

badUnfollow :: BL.ByteString
badUnfollow = [r|
{ "events": [
{
  "type": "unfollow'",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  }
}
] }
|]

goodJoin :: BL.ByteString
goodJoin = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "join",
  "timestamp": 1462629479859,
  "source": {
    "type": "group",
    "groupId": "cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
] }
|]

badJoin :: BL.ByteString
badJoin = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "join'",
  "timestamp": 1462629479859,
  "source": {
    "type": "group",
    "groupId": "cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
] }
|]

goodLeave :: BL.ByteString
goodLeave = [r|
{ "events": [
{
  "type": "leave",
  "timestamp": 1462629479859,
  "source": {
    "type": "group",
    "groupId": "cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
] }
|]

badLeave :: BL.ByteString
badLeave = [r|
{ "events": [
{
  "type": "leave'",
  "timestamp": 1462629479859,
  "source": {
    "type": "group",
    "groupId": "cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
] }
|]

goodPostback :: BL.ByteString
goodPostback = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "postback",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "postback": {
    "data": "action=buyItem&itemId=123123&color=red"
  }
}
] }
|]

goodPostbackWithDate :: BL.ByteString
goodPostbackWithDate = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "postback",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "postback": {
    "data": "action=buyItem&itemId=123123&color=red",
    "params": {
      "date": "1990-01-01"
    }
  }
}
] }
|]

goodPostbackWithTime :: BL.ByteString
goodPostbackWithTime = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "postback",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "postback": {
    "data": "action=buyItem&itemId=123123&color=red",
    "params": {
      "time": "12:34"
    }
  }
}
] }
|]

goodPostbackWithDatetime :: BL.ByteString
goodPostbackWithDatetime = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "postback",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "postback": {
    "data": "action=buyItem&itemId=123123&color=red",
    "params": {
      "datetime": "1990-01-01 12:34"
    }
  }
}
] }
|]

badPostback :: BL.ByteString
badPostback = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "postback",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "postback": {
    "data'": "action=buyItem&itemId=123123&color=red"
  }
}
] }
|]

goodBeacon :: BL.ByteString
goodBeacon = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "beacon",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "beacon": {
    "hwid": "d41d8cd98f",
    "type": "enter"
  }
}
] }
|]

goodBeaconLeave :: BL.ByteString
goodBeaconLeave = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "beacon",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "beacon": {
    "hwid": "d41d8cd98f",
    "type": "leave"
  }
}
] }
|]

goodBeaconBanner :: BL.ByteString
goodBeaconBanner = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "beacon",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "beacon": {
    "hwid": "d41d8cd98f",
    "type": "banner"
  }
}
] }
|]

goodBeaconWithDm :: BL.ByteString
goodBeaconWithDm = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "beacon",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "beacon": {
    "hwid": "d41d8cd98f",
    "type": "enter",
    "dm": "i am a direct message."
  }
}
] }
|]

badBeacon :: BL.ByteString
badBeacon = [r|
{ "events": [
{
  "replyToken": "nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
  "type": "beacon",
  "timestamp": 1462629479859,
  "source": {
    "type": "user",
    "userId": "U206d25c2ea6bd87c17655609a1c37cb8"
  },
  "bacon": {
    "hwid": "d41d8cd98f",
    "type": "enter"
  }
}
] }
|]