diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2023-01-19 20:17:55 +0100 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2023-01-19 20:17:55 +0100 |
commit | f499d9e657fe79e4413eec9e20ae13d616fac6f5 (patch) | |
tree | 616588346d0dc9337b2cd096cf2af7320dcc060f /includes/venue.php | |
parent | a5a9bb640306a69ec8f9a3c3701c49f34d3e7ebc (diff) | |
download | gigologadmin-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.php | 167 |
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; - } - } -} |