PHP Classes

File: src/routes/routes.php

Recommend this page to a friend!
  Classes of uche   Farm Price   src/routes/routes.php   Download  
File: src/routes/routes.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Farm Price
API to get the prices from agriculture markets
Author: By
Last change:
Date: 2 years ago
Size: 9,802 bytes
 

Contents

Class file image Download
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \
Psr\Http\Message\ResponseInterface as Response;
require_once
"../src/db-config/models.php";


$dhb = null;

$app = new \Slim\App;
/**
 * POST request to create a new user.
 * Of course, your block head should know that the user in this case is a farmer.
 */
$app->post('/api/v1/user/new', function(Request $request, Response $response){
   
$parsedBody = $request->getParsedBody();
   
$name = $parsedBody['name'];
   
$state = $parsedBody['state'];
   
$about = $parsedBody['about'];
   
$contentType = $request->getContentType();
    if(
$contentType != "application/json"){
       
$data = [
           
'code' => '403',
           
'message' => 'Content type must be application/json'];
        return
$response->withJson($data, 201);
    }
    else if(empty(
$name) || empty($state) || empty($about)){
       
$data = [
           
'code' => '400',
           
'message' => 'One or more parameter is missing'];
        return
$response->withJson($data, 201);
                       
//->write("Hello");
   
}else{
       
$dhb = new Models(); //Initiate an object of your Models class.
       
$id = $dhb->addUser($name, $state, $about); //call the addUser method
       
$data = [
           
'code' => '200',
           
'message' => 'New user created',
           
'data' => ['userid' => $id]];
        return
$response->withJson($data, 200);
    }
});
/**
 * GET method to fetch the details of a user using the id
 */
$app->get('/api/v1/user/{id}', function(Request $request, Response $response){
   
$id = $request->getAttribute('id');
   
$dhb = new Models(); //Initiate an object of your Models class.
   
$user = $dhb->getUser($id); //call the getUser method
   
if($user) {
       
$data = [
           
'code' => '200',
           
'message' => 'Success',
           
'data' => [ //Return the user properties of the returned user object.
               
'name' => $user->name,
               
'state' => $user->state,
               
'about' => $user->about
           
]
        ];
        return
$response->withJson($data, 200);
    }else{
       
$data = [
           
'code' => '404',
           
'message' => 'Failure',
           
'error' => 'No user found'
       
];
        return
$response->withJson($data, 404);
    }
});
/**
 * POST method to add farm produce (crops, animals, etc)
 */
$app->post('/api/v1/farm/produce/new', function(Request $request, Response $response){
   
$parsedBody = $request->getParsedBody();
   
$name = $parsedBody['name'];
   
$description = $parsedBody['description'];

   
$contentType = $request->getContentType();
    if(
$contentType != "application/json"){
       
$data = [
           
'code' => '403',
           
'message' => 'Content type must be application/json'];
        return
$response->withJson($data, 201);
    }
    else if(empty(
$name) || empty($description)){
       
$data = [
           
'code' => '400',
           
'message' => 'One or more parameter is missing'];
        return
$response->withJson($data, 201);
       
//->write("Hello");
   
}else{
       
$dhb = new Models(); //Initiate an object of your Models class.
       
$id = $dhb->addProduce($name, $description); //call the addProduce method
       
if($id == 'produce already exist'){ //Check if produce already exist
           
$data = [
               
'code' => '208',
               
'message' => 'failure',
               
'error' => $name. ' already exist'];
            return
$response->withJson($data, 200);
        }else {
           
$data = [
               
'code' => '200',
               
'message' => 'New produce added',
               
'data' => ['produce id' => $id]];
            return
$response->withJson($data, 200);
        }
    }
});
/**
 * POST method to add farm price
 */
$app->post('/api/v1/farm/produce/add/price', function(Request $request, Response $response){
   
$parsedBody = $request->getParsedBody();
   
$userId = $parsedBody['userId'];
   
$produceId = $parsedBody['produceId'];
   
$price = $parsedBody['pricePerKg'];
   

   
$contentType = $request->getContentType();
    if(
$contentType != "application/json"){
       
$data = [
           
'code' => '403',
           
'message' => 'Content type must be application/json'];
        return
$response->withJson($data, 201);
    }
    else if(empty(
$userId) || empty($produceId) || empty($price)){
       
$data = [
           
'code' => '400',
           
'message' => 'One or more parameter is missing'];
        return
$response->withJson($data, 201);
       
//->write("Hello");
   
}else{
       
$dhb = new Models(); //Initiate an object of your Models class.
       
$id = $dhb->addPrice($userId, $produceId, $price); //call the addPrice method
       
if($id == 'produce already exist'){ //Check if produce already exist
           
$data = [
               
'code' => '208',
               
'message' => 'failure',
               
'error' => 'Produce already exist. Update Price Instead'];
            return
$response->withJson($data, 208);
        }else if(
$id == 'produce does not exist'){
           
$data = [
               
'code' => '404',
               
'message' => 'failure',
               
'error' => 'Produce does not exist. Add produce first'];
            return
$response->withJson($data, 200);
        }else if(
$id == 'user does not exist'){
           
$data = [
               
'code' => '404',
               
'message' => 'failure',
               
'error' => 'User does not exist. Create user first'];
            return
$response->withJson($data, 200);
        }
        else {
           
$data = [
               
'code' => '200',
               
'message' => 'Price added for specified product ID'
               
];
            return
$response->withJson($data, 200);
        }
    }
});
/**
 * Update the price for a particular user and produce
 */
$app->put('/api/v1/farm/produce/add/price', function(Request $request, Response $response){
   
$parsedBody = $request->getParsedBody();
   
$userId = $parsedBody['userId'];
   
$produceId = $parsedBody['produceId'];
   
$price = $parsedBody['pricePerKg'];
 

   
$contentType = $request->getContentType();
    if(
$contentType != "application/json"){
       
$data = [
           
'code' => '403',
           
'message' => 'Content type must be application/json'];
        return
$response->withJson($data, 201);
    }
    else if(empty(
$userId) || empty($produceId) || empty($price)){
       
$data = [
           
'code' => '400',
           
'message' => 'One or more parameter is missing'];
        return
$response->withJson($data, 201);
       
//->write("Hello");
   
}else{
       
$dhb = new Models(); //Initiate an object of your Models class.
       
$id = $dhb->updatePrice($userId, $produceId, $price); //call the addPrice method
       
if($id == 'produce does not exist'){
           
$data = [
               
'code' => '404',
               
'message' => 'failure',
               
'error' => 'Produce does not exist. Add produce first'];
            return
$response->withJson($data, 200);
        }else if(
$id == 'user does not exist'){
           
$data = [
               
'code' => '404',
               
'message' => 'failure',
               
'error' => 'User does not exist. Create user first'];
            return
$response->withJson($data, 200);
        }
        else {
           
$data = [
               
'code' => '200',
               
'message' => 'Price updated for specified product ID',
               
'data' => ['newPrice' => number_format($price)]
            ];
            return
$response->withJson($data, 200);
        }
    }
});

/**
GET method to fetch prices of a particular produce
**/
$app->get('/api/v1/farm/produce/price/{id}', function(Request $request, Response $response){
   
$id = $request->getAttribute('id');
   
$dhb = new Models(); //Initiate an object of your Models class.
   
$res = $dhb->getPriceByProduceId($id); //call the getUser method
   
if($res == "produce does not exist") {
       
$data = [
           
'code' => '404',
           
'message' => 'Failure',
           
'data' => [ //Return the user properties of the returned user object.
               
'error' => 'produce not found'
           
]
        ];
        return
$response->withJson($data, 200);
    }else{
        foreach (
$res as $res) { //Loop through all results
           
$result[] = [ //Store all prices in an array
               
'produce' => $res->produce_name,
               
'pricePerKg' => number_format($res->price),
               
'as at' => $res->day,
               
'farmer' => $res->user_name,
               
'state' => $res->state
           
];
        }
       
$data = [
           
'code' => '200',
           
'message' => 'Success',
           
'data' => $result
       
];
        return
$response->withJson($data, 200);
    }
});

/**
GET method to fetch all produces

**/
$app->get('/api/v1/farm/produce/list', function(Request $request, Response $response){
   
$dhb = new Models(); //Initiate an object of your Models class.
   
$res = $dhb->getAllProduce(); //call the getUser method
   
if($res == 'no produce') {
       
$data = [
           
'code' => '404',
           
'message' => 'Failure',
           
'data' => [ //Return the user properties of the returned user object.
               
'error' => 'No produce added yet',
            ]
        ];
        return
$response->withJson($data, 200);
    }else{
        foreach (
$res as $res) { //Loop through all results
           
$result[] = [ //Store all prices in an array
               
'id' => $res->id,
               
'name' => $res->name,
               
'description' => $res->description
           
];
        }
       
$data = [
           
'code' => '200',
           
'message' => 'Success',
           
'data' => $result
       
];
        return
$response->withJson($data, 200);
    }
});