Last active
November 3, 2015 17:50
-
-
Save atommarvel/029169b5d0c468e93c16 to your computer and use it in GitHub Desktop.
addInstagramPosts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public void addInstagramPosts(List<InstagramPost> posts) { | |
if (posts == null) { | |
throw new IllegalArgumentException(String.format("Attemping to add a null posts to %s", DATABASE_NAME)); | |
} | |
// Take a look at the helper methods addImage, addComment, etc as you implement this method | |
// It's also a good idea to do this work in a transaction | |
SQLiteDatabase db = getWritableDatabase(); | |
db.beginTransaction(); | |
try { | |
for (InstagramPost post : posts) { | |
ContentValues pValues = new ContentValues(); | |
pValues.put(KEY_POST_MEDIA_ID, post.mediaId); | |
pValues.put(KEY_POST_CAPTION, post.caption); | |
pValues.put(KEY_POST_LIKES_COUNT, post.likesCount); | |
pValues.put(KEY_POST_COMMENTS_COUNT, post.commentsCount); | |
pValues.put(KEY_POST_CREATED_TIME, post.createdTime); | |
pValues.put(KEY_POST_USER_ID_FK, addorUpdateUser(post.user)); | |
pValues.put(KEY_POST_IMAGE_ID_FK, addImage(post.image)); | |
long postId = db.insert(TABLE_POSTS, null, pValues); | |
if (post.comments != null) { | |
for (InstagramComment comment : post.comments) { | |
long commentId = addComment(comment, postId); | |
addPostCommentMapping(postId, commentId); | |
} | |
} | |
} | |
db.setTransactionSuccessful(); | |
} finally { | |
db.endTransaction(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
11-03 09:38:45.794 4617-4617/com.codepath.instagram E/SQLiteLog﹕ (1555) abort at 12 in [INSERT INTO postComments(commentId,postId) VALUES (?,?)]: UNIQUE constraint failed: postComments.postId, postComments.commentId | |
11-03 09:38:45.795 4617-4617/com.codepath.instagram E/SQLiteDatabase﹕ Error inserting commentId=1 postId=1 | |
android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: postComments.postId, postComments.commentId (code 1555) | |
at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method) | |
at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:782) | |
at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788) | |
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86) | |
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1471) | |
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341) | |
at com.codepath.instagram.persistence.InstagramClientDatabase.addPostCommentMapping(InstagramClientDatabase.java:303) | |
at com.codepath.instagram.persistence.InstagramClientDatabase.addInstagramPosts(InstagramClientDatabase.java:201) | |
at com.codepath.instagram.fragments.PostsFragment$1.onSuccess(PostsFragment.java:41) | |
at com.loopj.android.http.JsonHttpResponseHandler$1$1.run(JsonHttpResponseHandler.java:152) | |
at android.os.Handler.handleCallback(Handler.java:739) | |
at android.os.Handler.dispatchMessage(Handler.java:95) | |
at android.os.Looper.loop(Looper.java:135) | |
at android.app.ActivityThread.main(ActivityThread.java:5254) | |
at java.lang.reflect.Method.invoke(Native Method) | |
at java.lang.reflect.Method.invoke(Method.java:372) | |
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) | |
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) | |
11-03 09:38:45.796 4617-4617/com.codepath.instagram E/SQLiteLog﹕ (1555) abort at 12 in [INSERT INTO postComments(commentId,postId) VALUES (?,?)]: UNIQUE constraint failed: postComments.postId, postComments.commentId | |
11-03 09:38:45.797 4617-4617/com.codepath.instagram E/SQLiteDatabase﹕ Error inserting commentId=2 postId=1 | |
android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: postComments.postId, postComments.commentId (code 1555) | |
at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method) | |
at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:782) | |
at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788) | |
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86) | |
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1471) | |
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341) | |
at com.codepath.instagram.persistence.InstagramClientDatabase.addPostCommentMapping(InstagramClientDatabase.java:303) | |
at com.codepath.instagram.persistence.InstagramClientDatabase.addInstagramPosts(InstagramClientDatabase.java:201) | |
at com.codepath.instagram.fragments.PostsFragment$1.onSuccess(PostsFragment.java:41) | |
at com.loopj.android.http.JsonHttpResponseHandler$1$1.run(JsonHttpResponseHandler.java:152) | |
at android.os.Handler.handleCallback(Handler.java:739) | |
at android.os.Handler.dispatchMessage(Handler.java:95) | |
at android.os.Looper.loop(Looper.java:135) | |
at android.app.ActivityThread.main(ActivityThread.java:5254) | |
at java.lang.reflect.Method.invoke(Native Method) | |
at java.lang.reflect.Method.invoke(Method.java:372) | |
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) | |
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment