@cobuildlab/fisherman-permissions
TypeScript icon, indicating that this package has built-in type declarations

0.1.6 • Public • Published

Fisherman Permissions

Permissions functions for fisherman project

View Demo · Report Bug · Request Feature

Table of Contents

Getting Started

Prerequisites

To run the permission script, you need to have typescript installed

  • npm
npm install typescript --save-dev

Installation for run locally the permissions's script

  1. Clone the repo
git clone https://github.com/cobuildlab/fisherman-permissions.git
  1. set environment variables
GRAPHQL_TOKEN= 8base admin token 
WORKSPACE_ENDPOINT= 8base workspace end point
USER_ROLE_ID = to which the permissions will be applied 
  1. Install NPM packages
npm install
  1. run the permissions script
npm run permissions

Installation for use in the fisherman's project

  1. Install the project using npm
npm i @cobuildlab/fisherman-permissions

Documentation

types

interface Company {
  name?: string;
  id?: string;
}

interface UserIdRelation {
  user: {
    id: string;
  };
}

interface StripePlan {
  price?: number;
  name?: string;
  stripeID?: string;
  stripePlan?: string;
  priceID?: string;
  type?: string;
  currency?: string;
  planLevel: string;
  id?: string;
}

interface StandUpConfig {
  storedStandUp: number;
  firsLevelLimit: number;
  secondLevelLimit: number;
}

interface Subscription {
  expireDate?: string;
  stripePlanRelation?: StripePlan;
  status?: string;
  start_date?: string;
  companyRelation?: Company;
  stripeSubscriptionID?: string;
  cancelAtPeriodEnd?: string;
  id: string;
}

isCompanyManager

check if the current user is a manager of the company

isCompanyManager(managers: Array<UserIdRelation>, userID: string): [boolean, string?]

isCompanyAdmin

check if the current user is a admin of the company

isCompanyAdmin(admins: Array<UserIdRelation>, userID: string): [boolean, string?]

isValidPlanLevel

check if the plan is valid

isValidPlanLevel(planLevel: string):  [boolean] 

isPlanLevel0

check if the current plan is level 0

isPlanLevel0(plan: StripePlan): [boolean, string?]

isPlanLevel1

check if the current plan is level 1

isPlanLevel1(plan: StripePlan): [boolean, string?]

isPlanLevel2

check if the current plan is level 1

isPlanLevel2(plan: StripePlan): [boolean, string?]

isPlanLevel2

check if the current company can create more standUp this function is used in fisherman-functions

canCreateMoreStandUp(plan: StripePlan, config: StandUpConfig): [boolean, string?]

isActiveSubscription

check if the current company has an active subscription

isActiveSubscription(subscriptions: SubcriptionStatus): [boolean, string?]

isCanceledSubscription

check if the current company has a subscription canceled

isCanceledSubscription(subscriptions: SubcriptionStatus): [boolean, string?]

isUnpaidSubscription

check if the current company has an un-paid status in the subscription

isUnpaidSubscription(subscriptions: SubcriptionStatus): [boolean, string?]

isPastDueSubscription

check if the current company has an past-due status in the subscription

isPastDueSubscription(subscriptions: SubcriptionStatus): [boolean, string?]

constants

const PLANLEVEL0 = 'LEVEL_0';
const PLANLEVEL1 = 'LEVEL_1';
const PLANLEVEL2 = 'LEVEL_2';

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Readme

Keywords

none

Package Sidebar

Install

npm i @cobuildlab/fisherman-permissions

Weekly Downloads

1

Version

0.1.6

License

GPL-3.0

Unpacked Size

139 kB

Total Files

26

Last publish

Collaborators

  • galue99
  • alacret
  • nodejose
  • lesha12012