mirror of
https://github.com/fleetdm/fleet
synced 2026-05-15 04:58:25 +00:00
* rename dir * no need to install website or docs from npm At some point, would also be nice to be able to exclude assets/ as well, and to only install a pre-built version of Fleet's frontend code * Bring in fleetdm.com website From https://github.com/fleetdm/fleetdm.com as of https://github.com/fleetdm/fleetdm.com/releases/tag/v0.0.21 * add procfile for heroku Using https://github.com/timanovsky/subdir-heroku-buildpack * avoid getting anybody's hopes up * Create deploy-fleet-website.yml (#82) * Create deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * update pjs with SPDX-like license expressions. also fix repo URL and remove package lock * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * remove dummy uri * Dissect deploy script * Update deploy-fleet-website.yml * workaround for eslintrc nesting issue * lint fixes * forgot the .js * add per-commit git config * Update deploy-fleet-website.yml * might as well remove that * cleanup * connect w/ heroku app and have it actually push * fix bug I introduced in578a1a01ff* Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * the beauty, the glory, of javascript * GH actions don't like "\n" * Update deploy-fleet-website.yml * restore \n chars from0d45e568f6hoping I was wrong in0d45e568f6but see also https://github.community/t/what-is-the-correct-character-escaping-for-workflow-command-values-e-g-echo-xxxx/118465/5 * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * rename script to prevent duplicate building * Configure the real website * clean up * a test of the deploy workflow * add handbook to npmignore * I guess you could call this fixing a typo * point workflow at master branch * now clearly bogus: this completely unused version string
79 lines
2.7 KiB
JavaScript
Vendored
79 lines
2.7 KiB
JavaScript
Vendored
module.exports = {
|
|
|
|
|
|
friendlyName: 'Update billing card',
|
|
|
|
|
|
description: 'Update the credit card for the logged-in user.',
|
|
|
|
|
|
inputs: {
|
|
|
|
stripeToken: {
|
|
type: 'string',
|
|
example: 'tok_199k3qEXw14QdSnRwmsK99MH',
|
|
description: 'The single-use Stripe Checkout token identifier representing the user\'s payment source (i.e. credit card.)',
|
|
extendedDescription: 'Omit this (or use "") to remove this user\'s payment source.',
|
|
whereToGet: {
|
|
description: 'This Stripe.js token is provided to the front-end (client-side) code after completing a Stripe Checkout or Stripe Elements flow.'
|
|
}
|
|
},
|
|
|
|
billingCardLast4: {
|
|
type: 'string',
|
|
example: '4242',
|
|
description: 'Omit if removing card info.',
|
|
whereToGet: { description: 'Credit card info is provided by Stripe after completing the checkout flow.' }
|
|
},
|
|
|
|
billingCardBrand: {
|
|
type: 'string',
|
|
example: 'visa',
|
|
description: 'Omit if removing card info.',
|
|
whereToGet: { description: 'Credit card info is provided by Stripe after completing the checkout flow.' }
|
|
},
|
|
|
|
billingCardExpMonth: {
|
|
type: 'string',
|
|
example: '08',
|
|
description: 'Omit if removing card info.',
|
|
whereToGet: { description: 'Credit card info is provided by Stripe after completing the checkout flow.' }
|
|
},
|
|
|
|
billingCardExpYear: {
|
|
type: 'string',
|
|
example: '2023',
|
|
description: 'Omit if removing card info.',
|
|
whereToGet: { description: 'Credit card info is provided by Stripe after completing the checkout flow.' }
|
|
},
|
|
|
|
},
|
|
|
|
|
|
fn: async function ({stripeToken, billingCardLast4, billingCardBrand, billingCardExpMonth, billingCardExpYear}) {
|
|
|
|
// Add, update, or remove the default payment source for the logged-in user's
|
|
// customer entry in Stripe.
|
|
var stripeCustomerId = await sails.helpers.stripe.saveBillingInfo.with({
|
|
stripeCustomerId: this.req.me.stripeCustomerId,
|
|
token: stripeToken || '',
|
|
}).timeout(5000).retry();
|
|
|
|
// Update (or clear) the card info we have stored for this user in our database.
|
|
// > Remember, never store complete card numbers-- only the last 4 digits + expiration!
|
|
// > Storing (or even receiving) complete, unencrypted card numbers would require PCI
|
|
// > compliance in the U.S.
|
|
await User.updateOne({ id: this.req.me.id })
|
|
.set({
|
|
stripeCustomerId,
|
|
hasBillingCard: stripeToken ? true : false,
|
|
billingCardBrand: stripeToken ? billingCardBrand : '',
|
|
billingCardLast4: stripeToken ? billingCardLast4 : '',
|
|
billingCardExpMonth: stripeToken ? billingCardExpMonth : '',
|
|
billingCardExpYear: stripeToken ? billingCardExpYear : ''
|
|
});
|
|
|
|
}
|
|
|
|
|
|
};
|