bin/renew_tokens
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'bundler/setup'
require 'fortnox/api'
require 'dotenv'
DOTENV_FILE_NAME = '.env'
Dotenv.load(DOTENV_FILE_NAME)
tokens = Fortnox::API::Repository::Authentication.new.renew_tokens(
refresh_token: ENV.fetch('FORTNOX_API_REFRESH_TOKEN'),
client_id: ENV.fetch('FORTNOX_API_CLIENT_ID'),
client_secret: ENV.fetch('FORTNOX_API_CLIENT_SECRET')
)
puts tokens
print "Write tokens to #{DOTENV_FILE_NAME} [y/n]? "
store_tokens_in_env = $stdin.gets.chomp
exit unless store_tokens_in_env.casecmp('y').zero?
text = File.read(DOTENV_FILE_NAME)
updated_text = text
.gsub(/FORTNOX_API_ACCESS_TOKEN=.*$/, "FORTNOX_API_ACCESS_TOKEN=#{tokens[:access_token]}")
.gsub(/FORTNOX_API_REFRESH_TOKEN=.*$/, "FORTNOX_API_REFRESH_TOKEN=#{tokens[:refresh_token]}")
File.write(DOTENV_FILE_NAME, updated_text)