Giter VIP home page Giter VIP logo

kushy-metrc-php-sdk's Introduction

Metrc API SDK

Dependencies

Development

Quick Start Guide + API Keys

  1. Install the METRC package with Composer: composer require 'kushy/metrc-php-sdk'
  2. Require whichever route class you need in your application - in this case we want to access the /harvests/ endpoint (assuming you're using PSR-4):
require_once '../../../vendor/autoload.php';

use Kushy\Metrc\Routes\Harvests;
  1. Create a new instance of the route class (Harvests) and pass through your state's abbreviated name (in this case ca for California) and Vendor + User API keys:
$harvests = new Harvests('ca', $vendorApiKey, $userApiKey);
  1. Use one of the class methods to query the API - this example grabs the active harvests:
$harvests = $metrc->getActive($licenseNumber, $startDate, $endDate);

Tips

General

Dates are ISO format Sending dates to API? Use ISO 8601 formatted date: 0001-01-01T00:00:00+00:00

$lastModifiedStart = date('c', strtotime($startDate));

Quickly get object keys Copy API response/sample data and do this:

/**
 * REGEX for
 * (["'])(?:(?=(\\?))\2.)*?\1:
 * ALT+ENTER to select all found objects
 * Paste
 * Find and replace ": with nothing
 * Find and replace " with $sample->
**/

  "Id": 1,
  "Name": "2014-11-19-Harvest Room-M",
  "HarvestType": "Product",
  "DryingRoomId": 1,
  "DryingRoomName": "Harvest Room",
  "CurrentWeight": 0.0,
  "TotalWasteWeight": 0.0,
  "PlantCount": 70,
  "TotalWetWeight": 40.0,
  "PackageCount": 5,
  "TotalPackagedWeight": 0.0,
  "UnitOfWeightName": "Ounces",
  "LabTestingState": null,
  "LabTestingStateDate": null,
  "IsOnHold": false,
  "HarvestStartDate": "2014-11-19",
  "FinishedDate": null,
  "ArchivedDate": null,
  "LastModified": "0001-01-01T00:00:00+00:00",
  "Strains": []

Testing

Example files are provided in the package for each endpoint and method (GET, POST, PUT, DELETE) to easily test each endpoint manually with properly formed sample data.

For example, to see a list of all active harvests, copy the code from test/example/harvests/get-active-harvest.php.

I'm looking to implement unit testing soon to ensure package integrity.

kushy-metrc-php-sdk's People

Contributors

stoneddesigner avatar whoisryosuke avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.