Skip to content

Commit

Permalink
Various changes and getting the front end hooked up to the backend
Browse files Browse the repository at this point in the history
  • Loading branch information
AdamKyle committed Aug 31, 2024
1 parent 5fa93c1 commit d2c23c0
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 39 deletions.
38 changes: 18 additions & 20 deletions app/Game/Kingdoms/Service/CapitalCityBuildingManagement.php
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,6 @@ public function processBuildingRequest(CapitalCityBuildingQueue $capitalCityBuil
$building = $kingdom->buildings()->where('id', $buildingUpgradeRequest['building_id'])->first();
$buildingUpgradeRequest = $this->processPotentialResourceRequests($capitalCityBuildingQueue, $kingdom, $building, $character, $buildingUpgradeRequest);

if (is_null($buildingUpgradeRequest['secondary_status'])) {
dump($buildingUpgradeRequest);
}

$capitalCityBuildingQueue = $capitalCityBuildingQueue->refresh();

$requestData[$index] = $buildingUpgradeRequest;
Expand All @@ -135,24 +131,26 @@ public function processBuildingRequest(CapitalCityBuildingQueue $capitalCityBuil
// If the request is ready for building, handle it immediately
if ($buildingUpgradeRequest['secondary_status'] === CapitalCityQueueStatus::BUILDING ||
$buildingUpgradeRequest['secondary_status'] === CapitalCityQueueStatus::REPAIRING) {
$result = $this->handleBuildingRequest($capitalCityBuildingQueue, $building, $character);

if (! $result) {
$requestData[$index]['secondary_status'] = CapitalCityQueueStatus::REJECTED;
}
// $result = $this->handleBuildingRequest($capitalCityBuildingQueue, $building, $character);
//
// if (! $result) {
// $requestData[$index]['secondary_status'] = CapitalCityQueueStatus::REJECTED;
// }
}
}

$capitalCityBuildingQueue->update([
'building_request_data' => $requestData,
'messages' => $this->messages,
]);

$capitalCityBuildingQueue = $capitalCityBuildingQueue->refresh();

event(new UpdateCapitalCityBuildingQueueTable($capitalCityBuildingQueue->character));

$this->possiblyCreateLogForQueue($capitalCityBuildingQueue);
dump($requestData);

// $capitalCityBuildingQueue->update([
// 'building_request_data' => $requestData,
// 'messages' => $this->messages,
// ]);
//
// $capitalCityBuildingQueue = $capitalCityBuildingQueue->refresh();
//
// event(new UpdateCapitalCityBuildingQueueTable($capitalCityBuildingQueue->character));
//
// $this->possiblyCreateLogForQueue($capitalCityBuildingQueue);
}

/**
Expand Down Expand Up @@ -336,7 +334,7 @@ private function processPotentialResourceRequests(CapitalCityBuildingQueue $capi

$buildingUpgradeRequest['missing_costs'] = $missingResources;

$processResult = $this->processResourceRequests($capitalCityBuildingQueue, $kingdom, $character, $building, $missingResources);
$processResult = true; // $this->processResourceRequests($capitalCityBuildingQueue, $kingdom, $character, $building, $missingResources);

$buildingUpgradeRequest['secondary_status'] = ($processResult ? CapitalCityQueueStatus::REQUESTING : CapitalCityQueueStatus::REJECTED);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ import Ajax from "../../../lib/ajax/ajax";
import AjaxInterface from "../../../lib/ajax/ajax-interface";
import { AxiosError, AxiosResponse } from "axios";
import SendRequestConfirmationModal from "../capital-city/modals/send-request-confirmation-modal";
import BuildingsToUpgradeSection from "../capital-city/buildings-to-upgrade-section";

@injectable()
export default class ProcessUpgradeBuildingsAjax {
constructor(@inject(Ajax) private ajax: AjaxInterface) {}

public sendBuildingRequests(
component: SendRequestConfirmationModal,
component: BuildingsToUpgradeSection,
characterId: number,
kingdomId: number,
params: any,
Expand All @@ -36,17 +37,18 @@ export default class ProcessUpgradeBuildingsAjax {
(result: AxiosResponse) => {
component.setState(
{
loading: false,
processing_request: false,
success_message: result.data.message,
},
() => {
component.props.reset_table_forms();
component.resetFilters();
component.resetQueue();
},
);
},
(error: AxiosError) => {
component.setState({
loading: false,
processing_request: false,
});

if (typeof error.response !== "undefined") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,24 @@ import LoadingProgressBar from "../../ui/progress-bars/loading-progress-bar";
import CapitalCityBuildingUpgradeRepairTableEventDefinition from "../event-listeners/capital-city-building-upgrade-repair-table-event-definition";
import CapitalCityBuildingUpgradeRepairTableEvent from "../event-listeners/capital-city-building-upgrade-repair-table-event";
import debounce from "lodash/debounce";
import ProcessUpgradeBuildingsAjax from "../ajax/process-upgrade-buildings-ajax";
import SuccessAlert from "../../ui/alerts/simple-alerts/success-alert";
import DangerAlert from "../../ui/alerts/simple-alerts/danger-alert";

export default class BuildingsToUpgradeSection extends React.Component<
any,
any
> {
private fetchUpgradableKingdomsAjax: FetchUpgradableKingdomsAjax;
private processBuildingRequest: ProcessUpgradeBuildingsAjax;
private updateBuildingTable: CapitalCityBuildingUpgradeRepairTableEventDefinition;

constructor(props: any) {
super(props);

this.state = {
loading: true,
processing_request: false,
success_message: null,
error_message: null,
building_data: [],
Expand All @@ -31,6 +36,9 @@ export default class BuildingsToUpgradeSection extends React.Component<
this.fetchUpgradableKingdomsAjax = serviceContainer().fetch(
FetchUpgradableKingdomsAjax,
);
this.processBuildingRequest = serviceContainer().fetch(
ProcessUpgradeBuildingsAjax,
);
this.updateBuildingTable =
serviceContainer().fetch<CapitalCityBuildingUpgradeRepairTableEventDefinition>(
CapitalCityBuildingUpgradeRepairTableEvent,
Expand Down Expand Up @@ -172,9 +180,23 @@ export default class BuildingsToUpgradeSection extends React.Component<
this.setState({ building_queue: [] });
};

showQueue = () => {
console.log(this.state.building_queue);
};
sendOrders() {
this.setState(
{
processing_request: true,
success_message: null,
error_message: null,
},
() => {
this.processBuildingRequest.sendBuildingRequests(
this,
this.props.kingdom.character_id,
this.props.kingdom.id,
this.state.building_queue,
);
},
);
}

toggleBuildingQueue(kingdomId: number, buildingId: number) {
this.setState((prevState: any) => {
Expand Down Expand Up @@ -243,12 +265,22 @@ export default class BuildingsToUpgradeSection extends React.Component<

return (
<div className="md:p-4">
{this.state.processing_request ? <LoadingProgressBar /> : null}

{this.state.success_message !== null ? (
<SuccessAlert>{this.state.success_message}</SuccessAlert>
) : null}

{this.state.error_message !== null ? (
<DangerAlert>{this.state.error_message}</DangerAlert>
) : null}

<input
type="text"
value={this.state.search_query}
onChange={(e) => this.handleSearchChange(e)}
placeholder="Search by kingdom name, map name, or building name"
className="w-full mb-4 px-4 py-2 border rounded text-gray-900 dark:text-white bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 focus:outline-none focus:ring-2 focus:ring-blue-500"
className="w-full my-4 px-4 py-2 border rounded text-gray-900 dark:text-white bg-white dark:bg-gray-700 border-gray-300 dark:border-gray-600 focus:outline-none focus:ring-2 focus:ring-blue-500"
aria-label="Search by kingdom name, map name, or building name"
/>

Expand Down Expand Up @@ -279,10 +311,10 @@ export default class BuildingsToUpgradeSection extends React.Component<
Reset Queue
</button>
<button
onClick={this.showQueue}
onClick={this.sendOrders.bind(this)}
className="w-1/2 px-4 py-2 bg-green-500 text-white rounded hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-green-500 focus:ring-opacity-50"
>
Show Queue
Send Orders
</button>
</>
)}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,14 @@ export default class UnitRecruitment extends React.Component<any, any> {
// Remove the unit request if the amount is 0 or ""
if (unitRequest) {
kingdomQueue.unit_requests = kingdomQueue.unit_requests.filter(
(request: any) => request.unit_name !== unitName
(request: any) => request.unit_name !== unitName,
);
}

// Remove the kingdom queue if it has no units left
if (kingdomQueue.unit_requests.length === 0) {
updatedQueue = updatedQueue.filter(
(item) => item.kingdom_id !== kingdomId
(item) => item.kingdom_id !== kingdomId,
);
}
} else {
Expand All @@ -169,8 +169,6 @@ export default class UnitRecruitment extends React.Component<any, any> {
this.setState({ unit_queue: updatedQueue });
}



handleBulkAmountChange = (
event: React.ChangeEvent<HTMLInputElement>,
kingdomId: number,
Expand Down Expand Up @@ -259,9 +257,7 @@ export default class UnitRecruitment extends React.Component<any, any> {

return (
<div className="md:p-4">
<h3>
Recruit Units to your cause
</h3>
<h3>Recruit Units to your cause</h3>
<div className="border-b-2 border-b-gray-300 dark:border-b-gray-600 my-4"></div>
<input
type="text"
Expand Down Expand Up @@ -322,7 +318,7 @@ export default class UnitRecruitment extends React.Component<any, any> {
}
return {
open_kingdom_ids:
newOpenKingdomIds,
newOpenKingdomIds,
};
})
}
Expand Down Expand Up @@ -364,7 +360,7 @@ export default class UnitRecruitment extends React.Component<any, any> {
this.state
.bulk_input_values[
kingdom.id
] || ""
] || ""
}
onChange={(e) =>
this.handleBulkAmountChange(
Expand Down

0 comments on commit d2c23c0

Please sign in to comment.