Skip to content

Commit

Permalink
Update instagram response models
Browse files Browse the repository at this point in the history
  • Loading branch information
yukihirai0505 committed Sep 5, 2017
1 parent 6274a0a commit 521fec8
Show file tree
Hide file tree
Showing 14 changed files with 60 additions and 57 deletions.
@@ -1,18 +1,20 @@
package com.yukihirai0505.sInstagram.responses.comments

import com.yukihirai0505.sInstagram.responses.common.User
/**
* author Yuki Hirai on 2016/11/09.
*/
case class CommentData(
form: Option[String],
createdTime: Option[String],
id: Option[String],
text: Option[String]
from: User,
createdTime: String,
id: String,
text: String
)

import com.github.tototoshi.play.json.JsonNaming
import play.api.libs.json.Json


object CommentData {
implicit val CommentDataFormat = JsonNaming.snakecase(Json.format[CommentData])
}
Expand Up @@ -6,11 +6,12 @@ import com.yukihirai0505.sInstagram.responses.common.Meta
* author Yuki Hirai on 2016/11/09.
*/
case class MediaCommentsFeed(
data: List[CommentData],
meta: Option[Meta]
)
data: Seq[CommentData],
meta: Option[Meta]
)

import play.api.libs.json.Json

object MediaCommentsFeed {
implicit val MediaCommentsFeedFormat = Json.format[MediaCommentsFeed]
}
@@ -1,10 +1,10 @@
package com.yukihirai0505.sInstagram.responses.common

case class Caption(
createdTime: Option[String],
from: Option[FromTagData],
id: Option[String],
text: Option[String]
createdTime: String,
from: FromTagData,
id: String,
text: String
)

import com.github.tototoshi.play.json.JsonNaming
Expand Down
Expand Up @@ -4,10 +4,10 @@ package com.yukihirai0505.sInstagram.responses.common
* author Yuki Hirai on 2016/11/09.
*/
case class FromTagData(
fullName: Option[String],
id: Option[String],
profilePicture: Option[String],
username: Option[String]
fullName: String,
id: String,
profilePicture: String,
username: String
)

import com.github.tototoshi.play.json.JsonNaming
Expand Down
@@ -1,10 +1,10 @@
package com.yukihirai0505.sInstagram.responses.common

case class Location(
id: Option[String],
latitude: Option[Double],
longitude: Option[Double],
name: Option[String]
id: String,
latitude: Double,
longitude: Double,
name: String
)

import play.api.libs.json.Json
Expand Down
@@ -1,10 +1,10 @@
package com.yukihirai0505.sInstagram.responses.common

case class User(
id: Option[String],
username: Option[String],
fullName: Option[String],
profilePicture: Option[String]
id: String,
username: String,
fullName: String,
profilePicture: String
)

import com.github.tototoshi.play.json.JsonNaming
Expand Down
@@ -1,11 +1,11 @@
package com.yukihirai0505.sInstagram.responses.likes

case class LikerUserInfo(
username: Option[String],
firstName: Option[String],
lastName: Option[String],
`type`: Option[String],
id: Option[String]
username: String,
firstName: String,
lastName: String,
`type`: String,
id: String
)

import com.github.tototoshi.play.json.JsonNaming
Expand Down
Expand Up @@ -6,7 +6,7 @@ import com.yukihirai0505.sInstagram.responses.common._
* author Yuki Hirai on 2016/11/09.
*/
case class MediaFeed(
data: List[MediaFeedData],
data: Seq[MediaFeedData] = Seq.empty[MediaFeedData],
pagination: Option[Pagination],
meta: Option[Meta])

Expand Down
Expand Up @@ -10,16 +10,16 @@ import play.api.libs.json.Json
case class MediaFeedData(
caption: Option[Caption],
comments: Option[Comments],
createdTime: Option[String],
id: Option[String],
createdTime: String,
id: String,
filter: Option[String],
images: Option[Images],
videos: Option[Videos],
likes: Option[Likes],
link: Option[String],
link: String,
location: Option[MediaLocation],
tags: Option[List[String]],
user: Option[User]
user: User
)
object MediaFeedData {
implicit val MediaFeedFormat = JsonNaming.snakecase(Json.format[MediaFeedData])
Expand Down
Expand Up @@ -6,11 +6,12 @@ import com.yukihirai0505.sInstagram.responses.common.Meta
* author Yuki Hirai on 2016/11/09.
*/
case class MediaInfoFeed(
data: MediaFeedData,
meta: Option[Meta]
)
data: MediaFeedData,
meta: Option[Meta]
)

import play.api.libs.json.Json

object MediaInfoFeed {
implicit val MediaInfoFeedFormat = Json.format[MediaInfoFeed]
}
Expand Up @@ -5,8 +5,7 @@ package com.yukihirai0505.sInstagram.responses.relationships
*/
case class RelationshipFeedData(
incomingStatus: Option[String],
outgoingStatus: Option[String],
targetUserIsPrivate: Option[Boolean]
outgoingStatus: Option[String]
)

import com.github.tototoshi.play.json.JsonNaming
Expand Down
Expand Up @@ -4,9 +4,9 @@ package com.yukihirai0505.sInstagram.responses.users.basicinfo
* author Yuki Hirai on 2016/11/09.
*/
case class Counts(
follows: Option[Int],
followedBy: Option[Int],
media: Option[Int]
follows: Int,
followedBy: Int,
media: Int
)

import com.github.tototoshi.play.json.JsonNaming
Expand Down
Expand Up @@ -7,13 +7,13 @@ import play.api.libs.json.Json
* author Yuki Hirai on 2016/11/09.
*/
case class UserInfoData(
bio: Option[String],
counts: Option[Counts],
id: Option[String],
profilePicture: Option[String],
username: Option[String],
fullName: Option[String],
website: Option[String]
bio: String,
counts: Counts,
id: String,
profilePicture: String,
username: String,
fullName: String,
website: String
)

object UserInfoData {
Expand Down
18 changes: 9 additions & 9 deletions src/test/scala/com/yukihirai0505/sInstagram/InstagramSpec.scala
Expand Up @@ -63,9 +63,9 @@ class InstagramSpec extends FlatSpec with Matchers {

"getCurrentUserInfo" should "return a Some[UserInfo]" in {
val request = Await.result(instagram.getCurrentUserInfo, 10 seconds)
userId = request.data.flatMap(_.data.id)
userId = request.data.flatMap(x => Some(x.data.id))
request should be(anInstanceOf[Response[UserInfo]])
request.data.get.data.id.get should be(userId.getOrElse(""))
request.data.get.data.id should be(userId.getOrElse(""))
}


Expand All @@ -75,7 +75,7 @@ class InstagramSpec extends FlatSpec with Matchers {

"getRecentMediaFeed" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.getRecentMediaFeed(), 10 seconds)
mediaId = request.data.flatMap(_.data.lastOption.flatMap(_.id))
mediaId = request.data.flatMap(_.data.lastOption.flatMap(x => Some(x.id)))
locationId = request.data.flatMap(_.data.lastOption.flatMap(_.location.flatMap(x => Some(x.id.toString()))))
request should be(anInstanceOf[Response[MediaFeed]])
}
Expand Down Expand Up @@ -106,8 +106,8 @@ class InstagramSpec extends FlatSpec with Matchers {

"getLocationInfo" should "return a Some[LocationInfo]" in {
val request = Await.result(instagram.getLocationInfo(locationId.getOrElse("")), 10 seconds)
latitude = request.data.flatMap(_.data.latitude)
longitude = request.data.flatMap(_.data.longitude)
latitude = request.data.flatMap(x => Some(x.data.latitude))
longitude = request.data.flatMap(x => Some(x.data.longitude))
request should be(anInstanceOf[Response[LocationInfo]])
}

Expand Down Expand Up @@ -156,7 +156,7 @@ class InstagramSpec extends FlatSpec with Matchers {

"getMediaComments" should "return a Some[MediaCommentsFeed]" in {
val request = Await.result(instagram.getMediaComments(mediaId.getOrElse("")), 10 seconds)
mediaCommentId = request.data.flatMap(_.data.lastOption.flatMap(_.id))
mediaCommentId = request.data.flatMap(_.data.lastOption.flatMap(x => Some(x.id)))
request should be(anInstanceOf[Response[MediaCommentsFeed]])
}

Expand All @@ -175,7 +175,7 @@ class InstagramSpec extends FlatSpec with Matchers {
}

"getMediaInfoByShortCode" should "return a Some[MediaInfoFeed]" in {
val request = Await.result(instagram.getMediaInfoByShortCode("BYjumBPndzs"), 10 seconds)
val request = Await.result(instagram.getMediaInfoByShortCode("BYSxYrlHyPF"), 10 seconds)
request should be(anInstanceOf[Response[MediaInfoFeed]])
}

Expand All @@ -185,7 +185,7 @@ class InstagramSpec extends FlatSpec with Matchers {
}

"getRecentMediaFeedTags" should "return a Some[MediaFeed]" in {
val request = Await.result(instagram.getRecentMediaFeedTags("フォトジェニック"), 10 seconds)
val request = Await.result(instagram.getRecentMediaFeedTags("test"), 10 seconds)
request should be(anInstanceOf[Response[MediaFeed]])
}

Expand All @@ -205,7 +205,7 @@ class InstagramSpec extends FlatSpec with Matchers {
}

"searchFacebookPlace" should "return a Some[LocationSearchFeed]" in {
val request = Await.result(instagram.searchFacebookPlace(locationId.getOrElse("")), 10 seconds)
val request = Await.result(instagram.searchFacebookPlace("273471170716"), 10 seconds)
request should be(anInstanceOf[Response[LocationSearchFeed]])
}

Expand Down

0 comments on commit 521fec8

Please sign in to comment.