Guest User

Untitled

a guest
Oct 20th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. var jcouch = {
  2. new: function(db_name, options) {
  3. return {
  4. config: $.extend(true, {
  5. async: false
  6. },
  7. typeof options === 'object' ? options : {}
  8. ),
  9.  
  10. db: $.couch.db(decodeURIComponent(db_name)),
  11.  
  12. forall: function(callback) {
  13. var THIS = this;
  14.  
  15. THIS.get_all(function(data) {
  16. $.each(data, function() {
  17. THIS.get_doc(this.id, function(doc) {
  18. callback(doc);
  19. });
  20. });
  21. });
  22. },
  23.  
  24. foreach: function(view, callback) {
  25. var THIS = this;
  26.  
  27. THIS.get_view(view, function(data) {
  28. $.each(data, function() {
  29. THIS.get_doc(this.id, function(doc) {
  30. callback(doc);
  31. });
  32. });
  33. });
  34. },
  35.  
  36. get_all: function(callback) {
  37. var THIS = this;
  38.  
  39. THIS.db.allDocs({
  40. async: THIS.config.async,
  41. success: function(data) {
  42. if($.isFunction(callback)) {
  43. callback(data.rows);
  44. }
  45. }
  46. });
  47. },
  48.  
  49. get_view: function(view, callback) {
  50. var THIS = this;
  51.  
  52. THIS.db.view(view, {
  53. async: THIS.config.async,
  54. success: function(data) {
  55. if($.isFunction(callback)) {
  56. callback(data.rows);
  57. }
  58. }
  59. });
  60. },
  61.  
  62. get_doc: function(id, callback) {
  63. var THIS = this;
  64.  
  65. THIS.db.openDoc(id, null, {
  66. async: THIS.config.async,
  67. success: function(data) {
  68. if($.isFunction(callback)) {
  69. callback(data);
  70. }
  71. }
  72. });
  73. },
  74.  
  75. save_doc: function(doc, callback) {
  76. var THIS = this;
  77.  
  78. THIS.db.saveDoc(doc, {
  79. async: THIS.config.async,
  80. success: function(data) {
  81. if($.isFunction(callback)) {
  82. callback(data);
  83. }
  84. }
  85. });
  86. },
  87.  
  88. delete_doc: function(doc, callback) {
  89. var THIS = this;
  90.  
  91. THIS.db.removeDoc(doc, {
  92. async: THIS.config.async,
  93. success: function(data) {
  94. if($.isFunction(callback)) {
  95. callback(data);
  96. }
  97. }
  98. });
  99. }
  100. };
  101. }
  102. };
Add Comment
Please, Sign In to add comment