on ffbd692 help sign in
118 lines 2.3 kB history raw
1<?php
3namespace TANIOS\Airtable;
5/**
6 * Airtable API Class
7 *
8 * @author Sleiman Tanios
9 * @copyright Sleiman Tanios - TANIOS 2017
10 * @version 1.0
11 */
14class Airtable
17 const API_URL = "https://api.airtable.com/v0/";
19 private $_key;
21 private $_base;
23 public function __construct($config)
24 {
25 if (is_array($config)) {
26 $this->setKey($config['api_key']);
27 $this->setBase($config['base']);
28 } else {
29 echo 'Error: __construct() - Configuration data is missing.';
30 }
31 }
33 public function setKey($key)
34 {
35 $this->_key = $key;
36 }
38 public function getKey()
39 {
40 return $this->_key;
41 }
43 public function setBase($base)
44 {
45 $this->_base = $base;
46 }
48 public function getBase()
49 {
50 return $this->_base;
51 }
53 public function getApiUrl($request){
54 $request = str_replace( ' ', '%20', $request );
55 $url = self::API_URL.$this->getBase().'/'.$request;
56 return $url;
57 }
59 function getContent($content_type,$params="",$relations=false)
60 {
61 return new Request( $this, $content_type, $params, false, $relations );
62 }
64 function saveContent($content_type,$fields)
65 {
67 $fields = array('fields'=>$fields);
69 $request = new Request( $this, $content_type, $fields, true );
71 return $request->getResponse();
73 }
75 function updateContent($content_type,$fields)
76 {
78 $fields = array('fields'=>$fields);
80 $request = new Request( $this, $content_type, $fields, 'patch' );
82 return $request->getResponse();
84 }
86 function deleteContent($content_type)
87 {
89 $request = new Request( $this, $content_type, [], 'delete' );
91 return $request->getResponse();
93 }
95 function quickCheck($content_type,$field="",$value="")
96 {
97 $params = "";
99 if (!empty($field)&& !empty($value)){
101 $params = array(
102 "filterByFormula" => "AND({{$field}} = '$value')",
103 );
104 }
106 $request = new Request( $this, $content_type, $params, false );
108 $response = $request->getResponse();
111 $results['count'] = count($response->records);
112 $results['records'] = $response->records;
115 return (object)$results;
116 }