package com.adobe.arise.database { import flash.data.SQLConnection; import flash.data.SQLStatement; import flash.events.SQLEvent; import flash.data.SQLResult; public class Posts extends DBOperation { public function Posts(responder:DatabaseResponder, sql:XML, connection:SQLConnection) { super(responder, sql, connection); } public function getByAuthor(author:String):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.selectByAuthor; stmt.parameters[":author"] = author; stmt.execute(); } public function getByTopic(topic:String):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.selectByTopic; stmt.parameters[":topic"] = topic; stmt.execute(); } public function getByFeed(feedId:Number):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.selectByFeed; stmt.parameters[":feed_id"] = feedId; stmt.execute(); } public function getBySearch(term:String):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.search; stmt.parameters[":search_term"] = "%"+term+"%"; stmt.execute(); } public function getAllUnread():void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.selectUnread; stmt.execute(); } public function getAllChecked():void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.selectChecked; stmt.execute(); } public function getAllScrapbooked():void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.selectScrapbooked; stmt.execute(); } public function getContentById(postId:Number):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.selectContentById; stmt.parameters[":post_id"] = postId; stmt.execute(); } public function countUnread():void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); var res:SQLResult = stmt.getResult(); dbe.data = res.data[0].unread; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.countUnread; stmt.execute(); } public function countScrapbooked():void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data[0].scrapbooked; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.countScrapbooked; stmt.execute(); } public function countChecked():void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); dbe.data = stmt.getResult().data[0].checked; responder.dispatchEvent(dbe); }); stmt.text = sql.posts.countChecked; stmt.execute(); } public function changeReadFlag(read:Boolean, postId:Number):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); responder.dispatchEvent(dbe); }); stmt.text = sql.posts.updateRead; stmt.parameters[":post_id"] = postId; stmt.parameters[":read"] = (read) ? 1 : 0; stmt.execute(); } public function changeChecked(checked:Boolean, postId:Number):void { var stmt:SQLStatement = this.getSQLStatement(); stmt.addEventListener(SQLEvent.RESULT, function(e:SQLEvent):void { var dbe:DatabaseEvent = new DatabaseEvent(DatabaseEvent.RESULT_EVENT); responder.dispatchEvent(dbe); }); stmt.text = sql.posts.updateChecked; stmt.parameters[":post_id"] = postId; stmt.parameters[":checked"] = (checked) ? 1 : 0; stmt.execute(); } } }