Crystal client for the Base API service, with it you can manage authentication, email sending, files and images of your application.
Add the dependency to your
dependencies: base: github: base-api-io/base-cr version: 1.0.0
Sign up on www.base-api.io and create an application and copy its access token.
Require the shard:
Create a client:
client = Base::Client.new(access_token: "your_access_token")
emails endpoint on the client you can send emails:
# Sending an email email = client.emails.send( from: "firstname.lastname@example.org", to: "email@example.com", subject: "Test Email", html: "<b>Html message</b>", text: "Text message")
users endpoint on the client you can create / get or delete users:
# Create a user with email / password user = client.users.create( email: "firstname.lastname@example.org", confirmation: "12345", password: "12345") # Get a users details by the id user = client.users.get("user_id") # Delete a user by id user = client.users.delete("user_id")
sessions endpoint on the client you can authenticate a user.
# Create a user with email / password user = client.sessions.authenticate( email: "email@example.com", password: "12345")
Forgot Password Flow
passwords endpoint on the client you can perform a forgot password flow.
# Create an forgot password token for the user with the given email address. token = client.passwords.forgot_password(email: "firstname.lastname@example.org") # Using that token set a new password. user = client.passwords.set_password( forgot_password_token: token.forgot_password_token, confirmation: "123456", password: "123456")
files endpoint on the client you can create / get / delete or
# Create a file file = client.files.create(file: File.open("/path/to/file")) # Get a file by id file = client.files.get("file_id") # Delete a file by id file = client.files.delete("file_id") # Get a download URL to the file by id url = client.files.download_url("file_id") # Download the file by id into an IO io = client.files.download("file_id")
images endpoint on the client you can create / get / delete or
# Create an image image = client.images.create(image: File.open("/path/to/image")) # Get a image by id image = client.images.get("image_id") # Delete a image by id image = client.images.delete("image_id") # Get a link to a prcessed version (crop & resize) of the image by id url = client.images.image_url(i.id, crop: Base::Crop.new(width: 100, height: 100, top: 0, left: 0), resize: Base::Resize.new(width: 100, height: 100), format: "jpg", quality: 10)
This library uses Crest, you can run the
specs locally with
- Fork it (https://github.com/base-api-io/base-cr/fork)
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request
- Gusztav Szikszai - creator and maintainer