freshbooks-cli-timetrap

0.1.0 • Public • Published

freshbooks-cli-timetrap

Build Status

Integrates the freshbooks-cli tools with timetrap time tracking

Overview

freshbooks-cli is a command-line interface to the FreshBooks API.

timetrap is a simple command line timetracker written in Ruby that can export JSON-formatted time entry data.

freshbooks-cli-timetrap implements the timetrap subcommand for freshbooks-cli.

Simply pipe your timetrap data to this subcommand to adapt your timesheet entries for use within freshbooks.

Before you use this tool you need to map some timetrap sheets to the associated freshbooks projects and tasks.

# Install timetrap
$ gem install timetrap

# Switch to a new sheet (creating it unless it exists)
$ t sheet myproject

# Record some entries
$ t in "doing one thing"; t out
$ t in "doing another"; t out

# On your FreshBooks account, create a new Project and Task, and note
# the ID of each.

# Map your new timesheet to your new freshbooks project/task.
$ freshbooks config -k timetrap:sheets:myproject:project_id -v <your project id>
$ freshbooks config -k timetrap:sheets:myproject:task_id -v <your task id>

All done!

Usage

--lines, -l - Convert timetrap entries to JSON-formatted invoice lines

--data JSON - Time entry data for --create

--help, -h - Display this message

See http://developers.freshbooks.com/docs/invoices/#invoice.lines.add for more information.

Examples

# Converting timetrap entries into invoice line items
$ timetrap display -s saturday -e friday -f json | freshbooks timetrap --lines
[
  {
    "name":"Some task",
    "description":"Did some work",
    "unit_cost":"150",
    "quantity":"3.2",
    "type":"Item"
  },
  {
    "name":"Some task",
    "description":"Did some other work",
    "unit_cost":"150",
    "quantity":"0.0",
    "type":"Item"
  },
  {
    "name":"Some task",
    "description":"Did some different work",
    "unit_cost":"150",
    "quantity":"0.5",
    "type":"Item"
  }
]

Contributing

The test suite is implemented with nodeunit and nixt.

To rebuild & run the tests

$ git clone https://github.com/logankoester/freshbooks-cli-timetrap.git
$ cd freshbooks-cli-timetrap
$ npm install
$ grunt test

You can use grunt watch to automatically rebuild and run the test suite when files are changed.

Use npm link from the project directory to tell freshbooks-cli to use your modified freshbooks-cli-timetrap during development.

To contribute back, fork the repo and open a pull request with your changes.

License

Copyright (c) 2014 Logan Koester Licensed under the MIT license.

Package Sidebar

Install

npm i freshbooks-cli-timetrap

Weekly Downloads

2

Version

0.1.0

License

none

Last publish

Collaborators

  • logankoester