public function invoice_cobot_bookings() { error_log('In invoice and charge last 24 hours bookings'); $util = new utilities(); $access_token = $util->get_current_environment_cobot_access_token(); $to = date_create(); $from = date_add(date_create(), date_interval_create_from_date_string("-24 hours")); $from = date_format($from, 'Y-m-d H:i O'); $to = date_format($to, 'Y-m-d H:i O'); $query = $this->db->get("cobot_spaces"); $spaces = $query->result(); foreach ($spaces as $space) { $bookings_url = 'https://' . $space->id . '.cobot.me/api/bookings'; $bookings = $util->do_get($bookings_url, $params = array('access_token' => $access_token, 'from' => rawurlencode($from), 'to' => rawurlencode($to))); if (count($bookings) < 1) { echo " *** No bookings in the last 24 hours for space: " . $space->id . "\r\n"; error_log(" *** No bookings in the last 24 hours for space: " . $space->id); } else { error_log('Bookings for space: ' . $space->id . ' are: ' . json_encode($bookings)); } $memberships = array(); foreach ($bookings as $booking) { $booking = (array) $booking; $membership = $booking['membership']; if ($membership) { if (!isset($memberships[$membership->id])) { $memberships[$membership->id] = 1; } } } $membership_ids = array_keys($memberships); error_log('Memberships to be charged: ' . json_encode($membership_ids)); foreach ($membership_ids as $membership_id) { echo " *** Trying to generate invoice for membership id: " . $membership_id . " for space: " . $space->id . "\r\n"; error_log(" *** Trying to generate invoice for membership id: " . $membership_id . " for space: " . $space->id); $invoice_url = 'https://' . $space->id . '.cobot.me/api/memberships/' . $membership_id . '/charges_based_invoices'; $params = array(); $result = $util->do_post($invoice_url, $params, $access_token); if ($result && count($result) > 0 && !array_key_exists('error', $result)) { error_log('Invoice created with id: ' . $result['id'] . ' and number: ' . $result['invoice_number'] . ' and url: ' . $result['url'] . ' for membership id: ' . $membership_id); echo ' *** Invoice created with id: ' . $result['id'] . ' and number: ' . $result['invoice_number'] . ' and url: ' . $result['url'] . ' for membership id: ' . $membership_id . "\r\n"; $charge_url = 'https://' . $space->id . '.cobot.me/api/invoices/' . $result['invoice_number'] . '/charges'; $charge_result = $util->do_post($charge_url, array(), $access_token); echo " *** Charge made for invoice number: " . $result['invoice_number'] . "\r\n"; error_log(" *** Charge made for invoice number: " . $result['invoice_number']); } } } }
public function create_cobot_membership($id, $user_id, $plan_name) { error_log('... creating cobot membership'); error_log($id); $cobot_authorization_token = $this->tp->get_cobot_access_token($user_id); if ($cobot_authorization_token) { $query = $this->db->get("cobot_spaces"); $spaces = $query->result(); foreach ($spaces as $space) { $d = array('address' => array('name' => $plan_name, 'full_address' => 'broadway 12345 New York', 'country' => 'USA'), 'plan' => array('id' => $space->default_plan_id), 'phone' => '9999999999'); $url = 'https://' . $space->id . '.cobot.me/api/membership'; $util = new utilities(); $response = $util->do_post($url, $params = $d, $cobot_authorization_token); } } }
function add_rfid_tokens() { $util = new utilities(); $access_token = $util->get_current_environment_cobot_access_token(); $query = $this->db->get("cobot_spaces"); $spaces = $query->result(); foreach ($spaces as $space) { $token_url = 'https://' . $space->id . '.cobot.me/api/check_in_tokens'; $sql = "SELECT u.id as user_id, u.rfid as user_rfid, cm.id as membership_id FROM cobot_memberships cm join user u on cm.user_id = u.id where cm.space_id = '" . $space->id . "'"; error_log($sql); $query = $this->db->query($sql); $members = $query->result(); error_log(json_encode($members)); foreach ($members as $member) { $token = "test-token-" . "{$member->membership_id}"; if ($member->user_rfid) { $token = "{$member->user_rfid}"; } $params = array("membership_id" => "{$member->membership_id}", "token" => $token); $util->do_post($token_url, $params, $access_token); } } }
function book_space($space_id, $user_id, $resource_id = null, $from = null, $to = null) { error_log('booking space'); $response = array(); if (!$resource_id) { $sql = "SELECT main_area_id FROM cobot_spaces where id = '" . $space_id . "'"; error_log($sql); $query = $this->db->query($sql); $results = (array) $query->result(); error_log(json_encode($results)); $main_area_id = NULL; if (count($results) > 0) { $main_area_id = current($results)->main_area_id; } error_log($main_area_id); $resource_id = $main_area_id; } if ($resource_id) { $sql = "select m.*, u.first_name, u.last_name from cobot_memberships m join user u on m.user_id = u.id where u.id='" . $user_id . "' and m.space_id='" . $space_id . "'"; error_log($sql); $query = $this->db->query($sql); $result = $query->result(); error_log(json_encode($result)); $membership = current($result); error_log(json_encode($membership)); $membership_id = $membership->id; $title = $membership->first_name . ' ' . $membership->last_name; $util = new utilities(); $url = "https://" . $space_id . ".cobot.me/api/resources/" . $resource_id . "/bookings"; error_log('Booking url: ' . $url); if (!$from) { $from = date_add(date_create(), date_interval_create_from_date_string("5 minutes")); $from = date_format($from, 'Y-m-d H:i O'); } if (!$to) { $resource_url = 'https://' . $space_id . '.cobot.me/api/resources/' . $resource_id; $resource = $util->do_get($resource_url, $params = array('access_token' => $util->get_current_environment_cobot_access_token())); $hours = 5; $minutes = 5; if ($resource && $resource['max_booking_duration']) { error_log('Max booking duration: ' . $resource['max_booking_duration']); $total_minutes = intval($resource['max_booking_duration']) + 5; $hours = intval($total_minutes / 60); $minutes = $total_minutes % 60; } error_log($hours . " hours + " . $minutes . " minutes"); $to = date_add(date_create(), date_interval_create_from_date_string($hours . " hours + " . $minutes . " minutes")); $to = date_format($to, 'Y-m-d H:i O'); } $data = array("membership_id" => $membership_id, "from" => $from, "to" => $to, "title" => $title, "comments" => "tea please"); $this->load->model("thirdpartyusermodel", "tpum", true); $cobot_access_token = $this->tpum->get_cobot_access_token($user_id); if ($cobot_access_token) { $response = $util->do_post($url, $params = $data, $cobot_access_token); } else { $response['error'] = "Could not find Cobot Access Token for the user"; } } else { $response['error'] = "No resource to book"; } error_log(json_encode($response)); return $response; }