aboutsummaryrefslogtreecommitdiff
path: root/muamba.business.inc
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2011-09-24 19:52:36 -0300
committerSilvio Rhatto <rhatto@riseup.net>2011-09-24 19:52:36 -0300
commit4f15de058dc6dadee6e79d16b441202b54161f02 (patch)
treed3c1afe31b73d8736e785e24a868b0f7c148a1de /muamba.business.inc
parent043d624016705e2b54772e5b6b248024e060bbce (diff)
downloadmuamba-4f15de058dc6dadee6e79d16b441202b54161f02.tar.gz
muamba-4f15de058dc6dadee6e79d16b441202b54161f02.tar.bz2
Adding transactional fields to muamba data model
Diffstat (limited to 'muamba.business.inc')
-rw-r--r--muamba.business.inc111
1 files changed, 111 insertions, 0 deletions
diff --git a/muamba.business.inc b/muamba.business.inc
new file mode 100644
index 0000000..f7b9e05
--- /dev/null
+++ b/muamba.business.inc
@@ -0,0 +1,111 @@
+<?php
+
+/**
+ * @file
+ * Business logic handling functions for Muamba.
+ */
+
+/**
+ * Request an item.
+ *
+ * @param $nid
+ * Requested item.
+ */
+function muamba_request($nid) {
+ // Sanitize
+ $nid = (int) $nid;
+ $node = node_load($nid);
+
+ if (!$node || $node->type != MUAMBA_NODE_TYPE) {
+ drupal_not_found();
+ }
+
+ global $user;
+
+ // TODO: check if user has permission to access the node.
+ // TODO: check if user is not blocked by privatemsg?
+
+ // Check if user already requested the item
+ if (muamba_check_user_request($nid, $user->uid)) {
+ // TODO
+ }
+
+ // Notify item owner
+ $thread = privatemsg_new_thread(array(user_load($node->uid)), t('Item request'), 'User has requested an item');
+ $thread_id = $thread['message']['thread_id'];
+
+ // Issue item request
+ // TODO
+
+ // User output
+ return t('You have requested an item');
+}
+
+/**
+ * Check if user already requested an item.
+ *
+ * @param $nid
+ * Item nid.
+ *
+ * @param $uid
+ * Requester user nid.
+ *
+ * @return
+ * TRUE if user already requested an item, FALSE otherwise.
+ */
+function muamba_check_user_request($nid, $uid) {
+ if (!is_int($nid) || !is_int($uid)) {
+ return FALSE;
+ }
+
+ $query = db_select('muamba', 'm');
+
+ $query
+ ->condition('m.nid', $nid, '=')
+ ->condition('m.uid', $uid, '=');
+
+ $result = $query->countQuery()->execute()->fetchField();
+
+ if ($result > 0) {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/**
+ * Release an item requested by a given user.
+ *
+ * @param $nid
+ * Item nid.
+ *
+ * @param $uid
+ * Requester user uid.
+ *
+ * @todo
+ */
+function muamba_release($nid, $uid) {
+ global $user;
+
+ $nid = (int) $nid;
+ $node = node_load($nid);
+
+ if (!$node || $node->type != MUAMBA_NODE_TYPE) {
+ drupal_not_found();
+ }
+
+ if ($node->uid != $user->uid) {
+ // TODO: not node owner
+ }
+}
+
+/**
+ * Get the requests sent or received.
+ *
+ * @param $uid
+ * Requester user uid.
+ *
+ * @todo
+ */
+function muamba_get_requests($nid, $type = 'sent') {
+}