esn-cy/core

A Drupal module that provides the core functionality for ESN Cyprus operations.

Maintainers

Package info

github.com/esn-cy/core

Type:drupal-module

pkg:composer/esn-cy/core

Statistics

Installs: 12

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-05-31 19:57 UTC

This package is auto-updated.

Last update: 2026-05-31 19:58:03 UTC


README

ESN Cyprus Core Logo
ESN Cyprus Core

ESN Cyprus Core is a foundational Drupal module that provides shared functionality, utility services, and third-party integrations for ESN Cyprus operations.

This module does not provide standalone user-facing features. Instead, it acts as a centralized library that other ESN Cyprus modules (like the ESN Membership Manager) can rely on for consistent file handling, email dispatching, and digital wallet integrations.

Features & Services

This module registers several core services that can be injected into your custom modules:

  • File Service (esn_cyprus_core.file_service): A robust wrapper around Drupal's file system for creating, moving, replacing, and reading managed files, as well as handling temporary files.
  • Google Wallet Service (esn_cyprus_core.google_service): Integration with the Google Wallet API using Service Account credentials. Handles creating, updating, and deleting Generic Classes and Objects, as well as uploading private images.
  • Apple Wallet Service (esn_cyprus_core.apple_service): Generates .pkpass files using the pkpass/pkpass library and handles sending APNs push notifications for pass updates.
  • Email Manager (esn_cyprus_core.email_manager): A utility for sending emails seamlessly using Drupal's Twig rendering system in isolation.
  • Stripe Service (esn_cyprus_core.stripe_service): Integration with the Stripe API for creating payment links, fetching prices, and validating webhooks.
  • Enum-Backed Entities: Provides base classes and interfaces (EnumBackedEntityBase, EnumBackedEntityStorage) to create Drupal content entities with strongly-typed, enum-backed fields.

Requirements

This module requires Drupal 10 or 11 and relies on several external PHP libraries managed via Composer:

  • esn/esn_accounts_api (^1.1)
  • stripe/stripe-php (^20.1)
  • google/auth (^1.50)
  • google/apiclient (^2.19)
  • google/apiclient-services (^0.441)
  • pkpass/pkpass (^2.5.1)
  • PHP Extensions: ext-openssl, ext-fileinfo

Installation

  1. Require the module via Composer to automatically fetch the external dependencies:
    composer require esn-cy/core
  2. Enable the module via Drush:
    drush en esn_cyprus_core

Configuration

To access the settings form, a user must have the manage core settings permission.

Navigate to ESN Cyprus Core > Core Settings (/admin/esn-cyprus-core/settings).

From the settings page, you can configure:

  • Integrations Toggle: Globally enable or disable Apple and Google integrations.
  • Email Settings: Define the default sender address, sender name, and the HTML footer for outgoing Twig emails.
  • Stripe: Set your Stripe Secret Key to enable Stripe API integrations.
  • Google Wallet: Upload your Google Service Account .json key file and define your Google Wallet Issuer ID. The module will securely parse the JSON file and extract the keys.
  • Apple Wallet: Set your Apple Team ID.