1. Go to this page and download the library: Download grantholle/powerschool-api library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
grantholle / powerschool-api example snippets
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
$request = PowerSchool::table('u_my_custom_table');
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
$request = PowerSchool::table('u_my_custom_table')->forId(100);
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
// This request is still not sent
$request = PowerSchool::table('u_my_custom_table')->setId(100)->method('get');
// This request is set to the get method and sent automatically
$response = PowerSchool::table('u_my_custom_table')->id(100)->get();
$response = PowerSchool::table('u_my_custom_table')->id(100)->get();
$response = PowerSchool::table('u_my_custom_table')->id(100)->delete();
// The above example could be rewritten like this...
$response = PowerSchool::table('u_my_custom_table')->id(100)->setMethod('get')->send();
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
$data = [
'column_one' => 'value',
'column_two' => 'value',
];
// Doing "table" requests, this not getting sent
$request = PowerSchool::table('u_my_custom_table')->with($data)->method('post');
// A PowerQuery (see below)
$response = PowerSchool::pq('com.organization.product.area.name')->withData($data);
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
// Will not get sent
$request = PowerSchool::powerQuery('com.organization.product.area.name');
// Gets posted automatically
$response = PowerSchool::powerQuery('com.organization.product.area.name', ['schoolid' => '100']);
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
PowerSchool::endpoint('/ws/v1/school/3/student')
->q('name.last_name==Ada*')
->get();
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
PowerSchool::pq('com.organization.plugin_name.entity.query_name')
->filter('number_column=lt=100')
->post();
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
PowerSchool::pq('com.organization.plugin_name.entity.query_name')
->order('students.last_name,students.first_name,students.entrydate;desc')
->post();
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
PowerSchool::pq('com.organization.plugin_name.entity.query_name')
->sort('column1');
// ?sort=column1&sortdescending=false
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
PowerSchool::pq('com.pearson.core.guardian.student_guardian_detail')
-> "name":"Students",
// ...
// },
// ... Only first page of actual results returned
// ],
// "@extensions":"activities,u_dentistry,studentcorefields,c_studentlocator"
// }
use GrantHolle\PowerSchool\Api\RequestBuilder;
RequestBuilder::GET;
RequestBuilder::POST;
RequestBuilder::PUT;
RequestBuilder::PATCH;
RequestBuilder::DELETE;
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
PowerSchool::get('/ws/v1/staff/111');
use GrantHolle\PowerSchool\Api\Facades\PowerSchool;
// PowerQuery
// You have to set data in a separate function call
// Otherwise the request will be sent automatically
$builder = PowerSchool::pq('com.organization.plugin_name.entity.query_name')
->with(['some_variable' => $value]);
// "Normal" endpoint
$builder = PowerSchool::to('/ws/v1/school/1/course')
->method(PowerSchool::GET);
// "Table" endpoints
$builder = PowerSchool::table('u_my_table')
->method(PowerSchool::GET);
while ($records = $builder->paginate(25)) {
// Do something awesome
}
$response = PowerSchool::to('/ws/contacts/contact/123')
->get();
// Since Response implements ArrayAccess, we can access the attributes with keys
$response['contactId']; // 123
$results = PowerSchool::to('/ws/v1/district/school')
->get();
foreach ($results as $result) {
// $result will be an array representing the school object returned
}
PowerSchool::table('u_my_table')->get();
// This returns results like
[
[
'id' => 1,
'tables' => [
'u_my_table' => [
'column' => '',
'column' => '',
// etc
]
]
],
// and on and on
]
PowerSchool::table('u_my_table')
->get()
->squashTableResponse();
// Now the results will be simpler
[
[
'column' => '',
'column' => '',
// etc
],
// and on and on
]