summaryrefslogtreecommitdiffstats
path: root/includes/venue.php
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2023-01-19 20:17:55 +0100
committerHarald Eilertsen <haraldei@anduin.net>2023-01-19 20:17:55 +0100
commitf499d9e657fe79e4413eec9e20ae13d616fac6f5 (patch)
tree616588346d0dc9337b2cd096cf2af7320dcc060f /includes/venue.php
parenta5a9bb640306a69ec8f9a3c3701c49f34d3e7ebc (diff)
downloadgigologadmin-f499d9e657fe79e4413eec9e20ae13d616fac6f5.tar.gz
gigologadmin-f499d9e657fe79e4413eec9e20ae13d616fac6f5.tar.bz2
gigologadmin-f499d9e657fe79e4413eec9e20ae13d616fac6f5.zip
Rename and restructure source files to conform to common namin schemes.
- Source files containing a class should only contain _one_ class. - Source files containing a class should be names class-[name of the class].php - Use dashes instead of underscores in file names. - Fix source file comments - Some nitpicking...
Diffstat (limited to 'includes/venue.php')
-rw-r--r--includes/venue.php167
1 files changed, 0 insertions, 167 deletions
diff --git a/includes/venue.php b/includes/venue.php
deleted file mode 100644
index a436f91..0000000
--- a/includes/venue.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-// SPDX-FileCopyrightText: 2021 Andrea Chirulescu <andrea.chirulescu@gmail.com>
-// SPDX-FileCopyrightText: 2021 Harald Eilertsen <haraldei@anduin.net>
-//
-// SPDX-License-Identifier: AGPL-3.0-or-later
-
-if ( ! class_exists( 'GiglogAdmin_Venue' ) ) {
- class GiglogAdmin_Venue {
-
- private ?int $id;
-
- /**
- * @psalm-suppress PropertyNotSetInConstructor
- */
- private string $name;
-
- /**
- * @psalm-suppress PropertyNotSetInConstructor
- */
- private string $city;
- private ?string $address;
- private ?string $webpage;
-
- /*
- * Constructs a new venue object from an array of attributes.
- * The attributes are expected to be named as in the database,
- * so this constructor can be used to construct the object
- * directly from the database row.
- */
- public function __construct( object $attrs ) {
- $this->id = isset( $attrs->id ) ? $attrs->id : null;
-
- if ( isset( $attrs->wpgvenue_name, $attrs->wpgvenue_city ) ) {
- $this->name = $attrs->wpgvenue_name;
- $this->city = $attrs->wpgvenue_city;
- } else {
- error_log( 'Trying to construct a Venue without a name or a city' );
- wp_die();
- }
-
- $this->address = isset( $attrs->wpgvenue_address ) ? $attrs->wpgvenue_address : null;
- $this->webpage = isset( $attrs->wpgvenue_webpage ) ? $attrs->wpgvenue_webpage : null;
- }
-
- /**
- * Get venue by given id.
- *
- * @param int $id
- * @return null|self
- */
- static function get( int $id ) : ?self {
- global $wpdb;
-
- $query = $wpdb->prepare( "SELECT * from {$wpdb->prefix}giglogadmin_venues WHERE id = %d", $id );
- $results = $wpdb->get_results( $query );
-
- return $results ? new GiglogAdmin_Venue( $results[0] ) : null;
- }
-
- static function create( string $name, string $city = 'Oslo' ): self {
- $venue = new GiglogAdmin_Venue(
- (object) array(
- 'wpgvenue_name' => $name,
- 'wpgvenue_city' => $city,
- )
- );
- $venue->save();
-
- return $venue;
- }
-
- static function find_or_create( string $name, string $city = 'Oslo' ): self {
- global $wpdb;
- $venuesql = "SELECT * FROM {$wpdb->prefix}giglogadmin_venues "
- . $wpdb->prepare( 'WHERE upper(wpgvenue_name)=upper(%s) and upper(wpgvenue_city)=upper(%s)', $name, $city );
-
- $results = $wpdb->get_results( $venuesql );
-
- if ( $results ) {
- return new GiglogAdmin_Venue( $results[0] );
- } else {
- return self::create( $name, $city );
- }
- }
-
- static function all_cities(): array {
- global $wpdb;
- $results = $wpdb->get_results(
- "select distinct wpgvenue_city from {$wpdb->prefix}giglogadmin_venues"
- );
-
- return array_map(
- function ( $r ) {
- return $r->wpgvenue_city;
- },
- $results
- );
- }
-
- /**
- * @return self[]
- *
- * @psalm-return array<array-key, self>
- */
- static function all_venues(): array {
- global $wpdb;
-
- $results = $wpdb->get_results(
- "select * from {$wpdb->prefix}giglogadmin_venues ORDER BY wpgvenue_name"
- );
-
- return array_map(
- function ( $r ) {
- return new GiglogAdmin_Venue( $r );
- },
- $results
- );
- }
-
-
- /**
- * @return self[]
- *
- * @psalm-return array<array-key, self>
- */
- static function venues_in_city( string $city ): array {
- global $wpdb;
- $q = $wpdb->prepare( "select * from {$wpdb->prefix}giglogadmin_venues where wpgvenue_city=%s", $city )
- . ' ORDER BY wpgvenue_name';
- $results = $wpdb->get_results( $q );
-
- return array_map(
- function ( $r ) {
- return new GiglogAdmin_Venue( $r );
- },
- $results
- );
- }
-
- public function save(): void {
- global $wpdb;
-
- $wpdb->insert(
- $wpdb->prefix . 'giglogadmin_venues',
- array(
- 'id' => '',
- 'wpgvenue_name' => $this->name,
- 'wpgvenue_city' => $this->city,
- )
- );
-
- $this->id = $wpdb->insert_id;
- }
-
- public function id() : int {
- return $this->id;
- }
-
- public function name() : string {
- return $this->name;
- }
-
- public function city() : string {
- return $this->city;
- }
- }
-}