Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

papir

2.3.5 • Public • Published

papir.js

Model Rest API Controller

Example with WooCommerce & vuejs

@notice - Cors must be accepted for the given url if running in browser

Fetch client_key & client_secret

import { Woo } from 'papir'
let woo = new Woo(
  'http://example.com',
  'AppName'
)
woo.authenticate() // Opens new window & respond with keys in console if accepted

Setup for vue

// In main.js
import { papir, Woo } from 'papir'
let woo = new Woo(
  'http://example.com',
  'AppName',
  'ck_***',
  'cs_***'
)
woo.authorize()
Vue.use(papir, { controller: woo.controller })

Using the module with vue components

 
// Single instance
let ep = new Endpoint(
  '/wp-json/wc/v2/products{/id}{/batch}',
  this.$glob.woo.controller
)
 
ep.id = new Prop(ep, 'id')
ep.id.value = 344 // Get product with id 344
ep.fetch().then(() => {
  console.log(ep)
  console.log(ep.raw.data) // Get raw response data
  console.log(ep.name.value)
  console.log(ep.regular_price.value)
  // etc..
  ep.name.value = 'xxx'
  ep.name.save() // Save property
  ep.name.fetch() // Refetch property
  ep.save() // Save all properties
  ep.fetch() // Fetch all properties
  ep.delete()
  ep.loading // Check if model is loading
  ep.clone() // Clone model
})
 
// Multiple instances
let list = new List(ep)
list
  .query()
  .limit(100)
  .fetch()
  .then(() => {
    console.log('Raw data', list)
    console.log('Raw data', list.raw.data)
    console.log('Children', list.children)
    list.children[0].name.value = 'New name'
    list.children[0].name.save()
    list.save() // Save everything
    list.delete() // Delete all children
    list.fetch() // Delete everything
    list
      .query() // Query by multiple custom key value pairs
      .custom('key', 'value')
      .custom('search', 'term')
      .custom('perPage', '31')
      .limit(42) // Built in filters
      .search()
      .page()
      .offset()
      .order()
      .context('view') // or 'edit'
      .fetch() // fetch ends the query and returns a Promise
    list.loading()
  })
 

Install

npm i papir

DownloadsWeekly Downloads

27

Version

2.3.5

License

ISC

Unpacked Size

290 kB

Total Files

26

Last publish

Collaborators

  • avatar