npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

jitbit-js

v0.1.0

Published

Javascript Wrapper for the Jitbit REST API

Downloads

403

Readme

jitbit-js

ZERO Dependencies Javascript Wrapper for the Jitbit REST API Built-in caching and exponential backoff retry logic.

.jitBit

Kind: static class
Date: November 15 2024 11:11 am -0500

new jitBit()

Class wrapper for jitbit rest api JITBIT Documentation https://www.jitbit.com/docs/api/

jitBit.getTickets(params, ignoreCache) ⇒ Array.<Object>

Get Tickets

Kind: instance method of jitBit
Returns: Array.<Object> - An Array of Ticket Objects, example below:
Date: November 13 2024 11:11 am -0500

| Param | Type | Default | Description | | --- | --- | --- | --- | | params | Object | {} | | | params.mode | string | | (optional) Allows you to choose, which tickets to show: all (default) shows all tickets, including closed, unanswered shows new or updated by customer or for tech tickets, unclosed all active tickets, handledbyme shows tickets assigned to the user | | params.categoryId | Array.<int> | | (optional) Filter by a category, int or an Array of ints | | params.sectionId | int | | (optional) Filter by a section | | params.statusId | Array.<int> | | (optional) Filter by statusID(s), int or an Array of ints. "New" is 1, "In process" is 2 "Closed" is 3. Check your custom status IDs in the admin area | | params.fromUserId | int | | (optional) Filter by a ticket creator | | params.fromCompanyId | int | | (optional) Filter by a company | | params.handledByUserID | int | | (optional) Filter by a ticket performer | | params.tagName | string | | (optional) Filter by ticket a tag | | params.dateFrom | string | | (optional) Filter by creation date (date format should be YYYY-MM-DD, for example 2016-11-24) | | params.dateTo | string | | (optional) Filter by creation date (date format should be YYYY-MM-DD, for example 2016-11-24) | | params.updatedFrom | string | | (optional) Filter by "last updated" date (date format should be YYYY-MM-DD, for example 2016-11-24) | | params.updatedTo | string | | (optional) Filter by "last updated" date (date format should be YYYY-MM-DD, for example 2016-11-24) | | params.dueInDays | int | | (optional) Filter by "due in X days" | | params.includeCustomFields | bool | | (optional) Add custom field values to the output | | params.subscribedOnly | bool | | (optional) Only return tickets you are subscribed to | | params.count | int | | (optional) How many tickets to return. Default: 10. Max: 300. | | params.offset | int | | (optional) Use this to create paging. For example "offset=20&count=20" will return the next 20 tickets after the first 20. Default: 0. | | params.fullDetails | Boolean | | (optional) Will call "getTicket" for each record returned, so you'll get full ticket details instead of just a summary. This will slow down the API call significantly. | | ignoreCache | Boolean | | Ignore Cache |

Example

[
        {
        "IssueID": 382,
        "TicketID": 382,
        "Priority": 0,
        "StatusID": 1,
        "IssueDate": "2024-05-05T17:25:31.127Z",
        "Subject": "Test ticket",
        "Status": "In progress",
        "UpdatedByUser": false,
        "UpdatedByPerformer": false,
        "CategoryID": 21,
        "UserName": "admin",
        "Technician": null,
        "FirstName": "",
        "LastName": "",
        "DueDate": null,
        "TechFirstName": null,
        "TechLastName": null,
        "LastUpdated": "2024-05-06T10:24:13.873Z",
        "UpdatedForTechView": false,
        "UserID": 20,
        "CompanyID": null,
        "CompanyName": null,
        "AssignedToUserID": 1,
        "ResolvedDate": null,
        "SectionID": null,
        "Category": "test",
        "Origin": "WebApp",
        "Email": "[email protected]",
        "HasChildren": false,
        "LastUpdatedByUserID": 1,
        "LastUpdatedUsername": "",
        "StartDate": "2024-05-06T10:24:13.887Z"
        },
        //...more tickets
      ]

jitBit.getTicket(params, ignoreCache) ⇒ Object

get details of one specific ticket by ID

Kind: instance method of jitBit
Date: November 13 2024 12:11 pm -0500

| Param | Type | Description | | --- | --- | --- | | params | Object | | | params.id | int | Ticket id | | params.ticketId | int | (Alias) Ticket id | | params.issueId | int | (Alias) Ticket id | | params.IssueID | int | (Alias) Ticket id | | params.TicketID | int | (Alias) Ticket id | | ignoreCache | Boolean | Ignore Cache |

Example

{
        "Attachments": [
            {
                "FileName": "icon.png",
                "FileData": null,
                "FileID": 1740828,
                "CommentID": 12722431,
                "CommentDate": "2020-02-28T04:48:00Z",
                "FileHash": null,
                "FileSize": 0,
                "IssueID": 2431395,
                "UserID": 43499,
                "GoogleDriveUrl": null, //cloud URL (google, dropbox, onedrive etc)
                "ForTechsOnly": false,
                "Url": "https://support.jitbit.com/helpdesk/File/Get?id=1740828"
            }
        ],
        "Tags": [
            {
                "TagID": 14502,
                "Name": "tag1",
                "TagCount": 0
            }
        ],
        "Status": "In progress",
        "OnBehalfUserName": null,
        "SubmitterUserInfo": {
            "UserID": 43499,
            //more user info properties
        },
        "CategoryName": "General issues",
        "AssigneeUserInfo": {
            "UserID": 43499,
            //more user info properties
        },
        "TicketID": 2431395,
        "IssueID": 2431395,
        "UserID": 43499,
        "AssignedToUserID": 43499,
        "IssueDate": "2020-02-28T04:48:00Z",
        "Subject": "test",
        "Body": "test ticket",
        "Priority": 0,
        "StatusID": 2,
        "CategoryID": 7277,
        "DueDate": null,
        "ResolvedDate": null,
        "StartDate": "2020-02-28T04:48:00Z",
        "TimeSpentInSeconds": 143,
        "UpdatedByUser": false,
        "UpdatedByPerformer": true,
        "UpdatedForTechView": false,
        "IsCurrentUserTechInThisCategory": false,
        "IsCurrentCategoryForTechsOnly": false,
        "SubmittedByCurrentUser": true,
        "IsInKb": false,
        "Stats": null
      }

jitBit.deleteTicket(params)

delete ticket by ID

Kind: instance method of jitBit
Date: December 09 2024 11:11 pm -0500

| Param | Type | Description | | --- | --- | --- | | params | Object | | | params.id | int | Ticket id | | params.ticketId | int | (Alias) Ticket id | | params.issueId | int | (Alias) Ticket id | | params.IssueID | int | (Alias) Ticket id | | params.TicketID | int | (Alias) Ticket id |

jitBit.getAttachment(params) ⇒ Buffer

Allows you to download an individual file attachment

Kind: instance method of jitBit
Returns: Buffer - The requested file attachment as a file Buffer.
Date: November 13 2024 12:11 pm -0500

| Param | Type | Description | | --- | --- | --- | | params | Object | | | params.id | int | File attachment ID | | params.AttachmentID | int | (Alias) File attachment ID | | params.attachmentId | int | (Alias) File attachment ID | | params.fileId | int | (Alias) File attachment ID | | params.FileID | int | (Alias) File attachment ID |

jitBit.createTicket(params) ⇒ int

create a ticket

Kind: instance method of jitBit
Returns: int - returns the ticket ID if successful, otherwise null
Date: November 13 2024 12:11 pm -0500

| Param | Type | Description | | --- | --- | --- | | params | Object | | | params.categoryId | int | Category ID | | params.body | string | Ticket body | | params.subject | string | Ticket subject | | params.priorityId | int | Ticket priority. Values: -1 – Low0 – Normal1 – High2 – Critical | | params.userId | int | (optional) - User-ID to create a ticket "on-behalf" of this user (requires technician permissions) | | params.userUsername | int | (optional) - User-Username to create a ticket "on-behalf" of this user (requires technician permissions) | | params.userEmail | int | (optional) - User-Email to create a ticket "on-behalf" of this user (requires technician permissions) | | params.tags | Array.<string> | (optional) - An Array of tags as strings | | params.origin | int | (optional) - Where the ticket came from, i.e. sets the "via" field for the ticket. Can be one of: 0 (WebApp), 1 (Email), 2 (Widget), 3 (API), 4 (Scheduler), 5 (MobileApp), 6 (Phone), 7 (LiveChat), 8 (InPerson) | | params.assignedToUserId | int | (optional) - User-ID to assign the ticket to (optional, requires technician permissions) | | params.assignedToUserUsername | int | (optional) - User-Username to assign the ticket to (optional, requires technician permissions) | | params.assignedToUserEmail | int | (optional) - User-Email to assign the ticket to (optional, requires technician permissions) | | params.customFields | Object | (optional) - An object that contains custom field values for the ticket. Format { "ID1" : "value", "ID2" : "value" } where "ID" is the custom field's ID-number. | | params.suppressConfirmation | bool | (optional) - Skip sending user confirmation email (useful when creating a ticket on behalf) | | params.dryRun | bool | (optional) - looks up user and checks params, but does not create a ticket (no ticket id returned) |

jitBit.getUser(params) ⇒ Object

lookup User, first result by userId, username, or email

Kind: instance method of jitBit
Returns: Object - returns User Details
Date: December 04 2024 12:11 pm -0500

| Param | Type | Description | | --- | --- | --- | | params | Object | | | params.userId | int | (optional) - User-ID | | params.username | String | (optional) - User's username | | params.email | String | (optional) - User's email address |

Example

{
      "UserID": 43499,
      "Username": "Max",
      "Password": null,
      "Email": "max@test",
      "FirstName": "Max",
      "LastName": "",
      "Notes": "test",
      "Location": "",
      "Phone": "+16463977708",
      "Department": null,
      "CompanyName": "Jitbit Software",
      "IPAddress": "213.229.75.25",
      "HostName": "213.229.75.25",
      "Lang": "en-US",
      "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36",
      "AvatarURL": null,
      "Signature": "Cheers,\r\nMax",
      "Greeting": "Hi #FirstName#",
      "CompanyId": 451,
      "CompanyNotes": null,
      "IsAdmin": true,
      "Disabled": false,
      "SendEmail": false,
      "IsTech": false,
      "LastSeen": "2020-02-28T04:48:00Z",
      "IsManager": false,
      "PushToken": null,
      "FullNameAndLogin": "Max",
      "FullName": "Max"
    }

jitBit.updateTicket(params) ⇒ Boolean

update one or more tickets

Kind: instance method of jitBit
Returns: Boolean - true if status is 200, otherwise false
Date: November 13 2024 12:11 pm -0500

| Param | Type | Description | | --- | --- | --- | | params | Object | | | params.id | int | Ticket ID | | params.categoryId | int | (optional) Ticket category | | params.priority | int | (optional) Ticket priority. Values: -1 Low, 0 Normal, 1 High, 2 Critical | | params.date | DateTime | (optional) Ticket creation date | | params.userId | int | (optional) Ticket submitter's user ID | | params.dueDate | DateTime | (optional) Due date | | params.assignedUserId | int | (optional) Assigned technician's ID. Set to 0 (zero) to remove the currently assigned user. | | params.timeSpentInSeconds | int | (optional) Time spent on the ticket | | params.statusId | int | (optional) Ticket status ID. "Closed" id 3, "New" is 1, "In process" is 2. Check your custom status IDs in the admin area | | params.tags | string | (optional) A comma-separated list of tags to apply to the ticket. Like tags=tag1,tag2,tag3. All existing tags will be removed | | params.subject | string | (optional) Ticket subject | | params.body | string | (optional) Ticket body |

jitBit.getCategories() ⇒ Array.<Object>

get all Categories

Kind: instance method of jitBit
Returns: Array.<Object> - Returns all categories the user has permissions to see
Date: December 02 2024 15:50 pm -0500
Example

[
        {
            "CategoryID": 7277,
            "Name": "General issues",
            "SectionID": null,
            "Section": null,
            "NameWithSection": "General issues",
            "ForTechsOnly": false,
            "FromAddress": null
        }
      ]

jitBit.jitBit

Kind: static class of jitBit
Date: November 15 2024 11:11 am -0500

new jitBit(params)

Creates an instance of jitBit.

| Param | Type | Description | | --- | --- | --- | | params | Object | | | params.baseUrl | String | Usually something like http://{DOMAIN}/helpdesk/api | | params.username | String | username for authentication (optional if token is provided) | | params.password | String | password for authentication (optional if token is provided) | | params.token | String | token for authentication (optional if username/password is provided) (You can get your token by visiting /User/Token/ page in the helpdesk app) | | params.isTest | Boolean | disables network calls | | params.cacheTimeToLive | Number | how long to cache results for in milliseconds (default 30,000) | | params.cacheIntervalRate | Number | how often to check cache expiration in milliseconds (default 2000) | | params.disableCaching | Boolean | Disabled Caching |

jitBit.ticketOrigins

Id/Value associated with Origin when creating a ticket

Kind: static property of jitBit
Date: December 09 2024 14:12 pm -0500

jitBit.ticketPriorities

Ticket Priority Levels and their ids

Kind: static property of jitBit
Date: December 09 2024 14:12 pm -0500

jitBit.ticketStatuses

jitbit built-in ticket Statuses and their ids (look at url for id of custom Status types)

Kind: static property of jitBit
Date: December 09 2024 14:12 pm -0500